CODEVS 1012 最大公约数和最小公倍数问题

来源:互联网 发布:淘宝客服名 编辑:程序博客网 时间:2024/06/05 20:45
题目描述 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

数据范围及提示 Data Size & Hint
#include<iostream>using namespace std;int gcd(int m,int n){int i,j;for(i=0;n!=m;i++){if(n>m)    {     j=m;m=n;n=j;    }m=m-n;}return m;}int lcm(int m,int n){int i;for(i=m;i<m*n+1;i+=m){if((i%m==0)&&(i%n==0)){break;}}return i;}int main(){int m,n,a=0,i,j;cin>>m>>n;for(i=m;i<=n;i+=m){for(j=m;j<=n;j+=m){if((gcd(i,j)==m)&&(lcm(i,j)==n)){a++;}}}cout<<a;  return 0;}


0 0