题目描述 Description
输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数
条件: 1.P,Q是正整数
2.要求P,Q以x0为最大公约数,以y0为最小公倍数.
试求:满足条件的所有可能的两个正整数的个数.
输入描述 Input Description
二个正整数x0,y0
输出描述 Output Description
满足条件的所有可能的两个正整数的个数
样例输入 Sample Input
3 60
样例输出 Sample Output
4
说明(不用输出)
此时的 P Q 分别为:
3 60
15 12
12 15
60 3
所以:满足条件的所有可能的两个正整数的个数共4种.
1 #include <iostream> 2 #include <cmath> 3 using namespace std; 4 int gcd(int a,int b) 5 { 6 int c=a%b; 7 while(c!=0) 8 { 9 a = b; 10 b = c; 11 c=a%b; 12 } 13 return b; 14 } 15 int main() 16 { 17 int x,y,i,v,s,ans; 18 cin>>x>>y; 19 v=x*y; 20 s=(int)sqrt(v); 21 ans=0; 22 for(i=x;i<=s;i++) 23 if((v%i==0)&&(gcd(v/i,i)==x)) ans++; 24 ans*=2; 25 cout<<ans; 26 return 0; 27 }