UVA 10780 Again Prime? No Time(质因数分解)
来源:互联网 发布:二战日本的海军数据 编辑:程序博客网 时间:2024/06/07 10:55
题意:给你两个整数m和n,求最大的k使得m^k是n!的约数
思路:首先我们先将m分解质因数,那么m^k就是各个质因数*k而已,那么我们只要判断每个质因数的指数在n!的对应的质因数的指数范围内,求所有质因数最小的一个,至于怎么求n!里某个质因数的个数,比如是2的话,那么只要计算n/2+n/4+n/8...的个数就行了,可以这么想每隔2个数就有一个2,然后是4...
#include <iostream>#include<cstdio>#include<cstring>using namespace std;#define N 10006int d[N];int power(int a,int b);int main(){ int m,n,t=1,k; scanf("%d",&k); while(k--) { scanf("%d%d",&m,&n); int a[100],i=0; memset(d,0,sizeof(d)); for(int j=2;j<=m;j++) { if(m%j==0) { if(d[j]==0) { a[i]=j; i++; } d[j]++; m=m/j; j--; } } int ans=0; int ma=0x7fffffff; for(int j=0;j<i;j++){ int k=n; int temp=0; while(k) { // cout<<k<<endl; temp=k/a[j]+temp; k=k/a[j]; } temp=temp/d[a[j]]; ma=min(ma,temp); } if(ma) printf("Case %d:\n%d\n",t++,ma); else printf("Case %d:\nImpossible to divide\n",t++); } return 0;}int power(int a,int b){ int ans=1; for(int i=0;i<b;i++) { ans=ans*a; } return ans;}
0 0
- UVA 10780 Again Prime? No Time(质因数分解)
- UVa 19780 Again Prime?No time. (质因数分解)
- UVa 10780- Again Prime? No Time.(唯一分解)
- UVA-10780-Again Prime? No Time(素数分解)
- UVa 10780 Again Prime? No Time. (数论&素因子分解)
- UVA - 10780 Again Prime? No Time. (质因子分解)
- UVA 10780 Again Prime? No Time. [质因子分解]【数论】
- Again Prime? No Time.(UVA 10780)
- uva 10780 Again Prime? No Time.
- UVa 10780-Again Prime? No Time.
- UVA 10780 - Again Prime No Time
- UVA - 10780 Again Prime? No Time.
- UVa:10780 Again Prime? No Time.
- 【UVa 10780】 Again Prime? No time.
- UVA 10780 Again Prime? No time
- UVa - 10780 - Again Prime? No Time.
- [UVa 10780]Again Prime?No time.
- UVa 10780 - Again Prime? No Time.
- 智能指针1---AutoPtr
- uiimageview设置contentMode为ScaleAspectFill后显示的不是view的大小而是图片的大小了
- 类模板
- 干货阿里巴巴 开源软件列表
- 基于Java技术的大型网站架构方案
- UVA 10780 Again Prime? No Time(质因数分解)
- Java类成员
- spark中实现分组取topN
- HDU 1280 前m大的数(计数排序)
- python—threading.thread【threading模块介绍01】
- IOS 委托代理(delegate)实现页面传值
- 深入解析java应用程序的一般架构(好文)
- 素数生成器
- 用遗传算法加强足球游戏的人工智能