最小公倍数和最大公约数问题
2013-04-10 00:01
169 查看
描述
输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P、Q的个数。条件:1.P、Q是正整数
2.要求P、Q以xO为最大公约数,以yO为最小公倍数。
试求,满足条件的所有可能的两个正整数的个数。
格式
输入格式
两个正整数输出格式
满足条件的所有可能的两个正整数的个数样例1
样例输入1[复制]
3 60
样例输出1[复制]
4
限制
每个测试点1s提示
说明:(不用输出)此时的 P Q 分别为:3 60
15 12
12 15
60 3
所以,满足条件的所有可能的两个正整数的个数共4种
#include<iostream> #include<stdio.h> #include<string.h> #include<cmath> using namespace std; int gcd(int a,int b) { return b?gcd(b,a%b):a; } int main() { int x,y; while(~scanf("%d%d",&x,&y)) { if(x==y) { printf("1\n"); continue; } if(y%x!=0) { printf("0\n"); continue; } if(x>y) { int temp=x; x=y; y=temp; } int dd=y/x; int i; int cnt=0; for(i=1;i<sqrt((double)dd);i++) { if(dd%i==0) { if(gcd(i,dd/i)==1) { cnt++; } } } printf("%d\n",2*cnt); } return 0; }
这题目其实是个水题,只是错了蛮多次,都是因为自己太粗心了,没看清楚题目意思,题目并没有说,x0<y0,也没有说y0%x0==0,方法是知道,就是太不应该了,再次纪念一下自己的错误!!
相关文章推荐
- 最大公约数,最小公倍数,素数等问题
- P1131 最小公倍数和最大公约数问题
- 8.最大公约数和最小公倍数问题
- 8.最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 8.最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- C++求最小公倍数和最大公约数问题
- java中关于整数的一些操作问题--最大公约数、最小公倍数、质数等
- 8.最大公约数和最小公倍数问题
- (数论)最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- vijos P1131 最小公倍数和最大公约数问题 题解
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题(天梯)
- 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组
- 2.最大公约数和最小公倍数问题
- 最大公约数和最小公倍数问题