题目1493:公约数
来源:互联网 发布:精子优化处理检查 必要 编辑:程序博客网 时间:2024/06/05 11:44
http://ac.jobdu.com/problem.php?pid=1493
思路:
1、求最大公约数,gcd
2、最大公约数,因式分解,(循环除小于bound的素数)
3、k1个因子1,k2个因子2,k3个因子3...
4、ans=(k1+1)(k2+1)(k3+1)....
#include <stdio.h>#include <string.h>#include <math.h>int prime[110001]; //数组开的大一点,求10000以内的素数bool mark[110001];int size;void init(){int i;memset(prime,0,sizeof(prime));memset(mark,0,sizeof(mark)); size=0;for (i=2;i<=110000;i++){if (mark[i]){continue;}prime[size++]=i;if (i>=1000){continue;}for (int j=i*i;j<=110000;j+=i){mark[j]=true;}}}int gcd(int a,int b){return b==0?a:gcd(b,a%b);}int main(){ int i,a,b;init();while (scanf("%d%d",&a,&b)!=EOF){int x;x=gcd(a,b);int bound=sqrt(x)+1;int k=0,ans=1;for (i=0;prime[i]<bound;i++){while (x%prime[i]==0){ k++; x/=prime[i];}ans*=(k+1);k=0;if (x==1) //能分解完{break;}}if (x!=1) //若有大于bound的因子,则其一定只有一个{ans*=2;}printf("%d\n",ans);}return 0;}
- 题目1493:公约数
- 题目1493:公约数
- 题目1493:公约数
- 题目1493:公约数
- 九度oj 题目1493:公约数
- 题目40: 公约数和公倍数
- 题目40 公约数和公倍数
- 题目40-公约数和公倍数
- 题目40:公约数和公倍数
- 2014年王道论坛研究生机试练习赛(二):题目1493:公约数
- NYOJ 题目40 公约数和公倍数
- nyoj题目40:公约数和公倍数
- 南阳oj 题目40 公约数和公倍数
- NYOJ:题目40 公约数和公倍数
- 南阳题目40-公约数和公倍数
- 九度 1493:公约数
- 公约数
- 公约数
- linux下firefox安装flash插件
- CRT函数解读
- 北京邮电大学程序设计课程设计第二次实验problem 6
- 实现虚拟机和宿主机能正常上网,通信
- 百度地图API之ItemizedOverlay的使用(Android)
- 题目1493:公约数
- 酷MM —装饰模式
- 彻底搞定C指针
- 桌面GIS平台效率提升的一点小经验
- adb 联系手机异常解决方法
- 百度地图API之根据经纬度查询地址信息(Android)
- 又拍网架构中的分库设计(转)
- oscache的使用
- 也谈大小端