UVA 10780-Again Prime? No Time.
2016-07-19 23:26
525 查看
题目链接
题目解析
题意
输入数据组数t,每组数据包含2个整数m和n,若m^k能被n!整除,输出最大的K,否则输出”Impossible to divide”。思路
将m分解质因数,求出每个质因数的个数p[i],在n!中相对应m中质因数的个数为q[i],q[i]÷p[i]的最小值即为所求的K的值。如何求m和n!的质因数见代码
代码
#include<stdio.h> #include<algorithm>//min头文件 using namespace std; #define inf 0x3f3f3f//定义的一个比较大的常数 int main(){ int t,n,m,cas=1; scanf("%d",&t); while(t--){ scanf("%d%d",&m,&n); int i=2,ans=inf; while(m!=1){ int p=0; while(m%i==0){ m/=i; p++;//m中质因数i的个数 } if(p){ int num=n,tmp=0; while(num){ tmp+=num/i;//n!中质因数i的个数 num/=i; } ans=min(ans,tmp/p); } i++; } printf("Case %d:\n",cas++); if(ans) printf("%d\n",ans); else printf("Impossible to divide\n"); } return 0; }
相关文章推荐
- 线程obj.wait()和obj.notify()详解.
- AIX常用文章集锦
- AIX常用命令汇总
- AIX常见问题整理(二)
- 游戏编程中的人工智能技术-神经网络入门(四)
- Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??
- 如何解决linux下apache启动时httpd: apr_sockaddr_info_get() failed for 报错
- HDU - 1021 Fibonacci Again
- 游戏编程中的人工智能技术-神经网络入门(三)
- 2016 Multi-University Training Contest 1
- Container With Most Water
- HDU 5733 tetrahedron (2016 Multi-University Training Contest 1 计算几何)
- dojo布局BorderContainer
- hdu 5178 pairs(二分,思路)
- 2016 Multi-University Training Contest 1 1011 tetrahedron
- 2016 Multi-University Training Contest 1 1002 Chess
- 2016 Multi-University Training Contest 1
- 1014. Waiting in Line (30)
- testNg之PowerEmailableReporter
- UVA 253-Cube painting