2011年上海交通大学计算机研究生机试真题
来源:互联网 发布:东尧seo 编辑:程序博客网 时间:2024/04/28 15:13
整除问题
http://ac.jobdu.com/problem.php?pid=1104
#include<iostream>#include<cstdio>#include<cmath>using namespace std;#include<memory.h>int prime[170],num;void findPrime(int n) { int i,j,k,flag;prime[0]=2;num=1;for(i=3;i<=n;i+=2) //奇数才有可能是素数,偶数就可以直接忽略了{k=sqrt(i*1.0);flag=0;for(j=3;j<=k;j+=2) //奇数肯定无法整除偶数,所以只需要判断是否能否整除奇数就可以了,只要有一个能够整除,就不是素数{if(i%j==0){flag=1;break;}}if(flag==0)prime[num++]=i;}}int main(void){int i,n,a,p,m,hash[1000],h,max;findPrime(1000);while(scanf("%d %d",&n,&a)!=EOF){max=1000;memset(hash,0,sizeof(hash));for(i=0;prime[i]<=a && i<num;i++){p=prime[i];m=0;while(a%p==0){m++;a/=p;}hash[p]=m;if(a==1)break;}h=n;p=2;for(m=0;h/=p;) //n!中2的个数可表示为 n/2+n/4+... m+=h;if(hash[2]){if(m/hash[2]<max)max=m/hash[2];}for(i=3;i<1000;i+=2){if(hash[i]){p=i;h=n;for(m=0;h/=p;) //道理同上m+=h;if(m/hash[i]<max)max=m/hash[i];}}printf("%d\n",max);}return 0;}
- 2011年上海交通大学计算机研究生机试真题
- 2011年上海交通大学计算机研究生机试真题
- 2006年上海交通大学计算机研究生机试真题
- 2005年上海交通大学计算机研究生机试真题
- 2005年上海交通大学计算机研究生机试真题
- 2010年上海交通大学计算机研究生机试真题
- 2005年上海交通大学计算机研究生机试真题:数字反转
- 题目1042:Coincidence(2008年上海交通大学计算机研究生机试真题)
- 2011年吉林大学计算机研究生机试真题
- 2011年吉林大学计算机研究生机试真题
- 2011年浙江大学计算机及软件工程研究生机试真题
- 2011年哈尔滨工业大学计算机研究生机试真题
- 2011年浙江大学计算机及软件工程研究生机试真题
- 2011年哈尔滨工业大学计算机研究生机试真题
- 2011年北京大学计算机研究生机试真题(题解)
- 2010年北京大学计算机研究生机试真题
- 2009年浙江大学计算机及软件工程研究生机试真题
- 2008年浙江大学计算机及软件工程研究生机试真题
- extjs 同步请求
- 求比正整数N大的最小正整数M,且M与N的二进制表示中有相同数目的1
- Ubuntu在root身份下不能调节音量
- 弄VLC的时候 eclipse编译多线程程序如果出现问题 注意这个地方
- OpenCv矩阵操作
- 2011年上海交通大学计算机研究生机试真题
- ERP产品缺陷
- Ubuntu中修改vim配置文件,更方便于c程序设计
- vichrom的配置
- Ibatis学习笔记
- 读书笔记(1)-《我编程,我快乐》
- 如何生成sqlplus操作日志
- Android中ActivityManagerService与应用程序(客户端)通信模型分析
- Sencha Touch 2 Beta 3: Kindle Fire and Chrome Support