文章标题

来源:互联网 发布:java和javascript 区别 编辑:程序博客网 时间:2024/05/22 11:52

问题 :求公约公倍


列表内容

题目描述
输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数
条件: 1.P,Q是正整数
2.要求P,Q以x0为最大公约数,以y0为最小公倍数.
试求:满足条件的所有可能的两个正整数的个数.

输入
二个正整数x0,y0

输出
满足条件的所有可能的两个正整数的个数

样例输入
3 60
样例输出
4

语言 c++

#include<iostream>using namespace std;int s(int ,int);int main(){    long long a,b,sum=0,j,i,k=0,t;    cin>>a>>b;    if(a>b)    {        cout<<0<<endl;        return 0;    }     else if(a==b)     {        cout<<1<<endl;        return 0;     }     else      {        for(i=a;i<=b;i+=a)        {            k++;            if(b%k==0)   //i*t=a*b;即最大公约乘以最小公倍等于i*t;             {                t=b/k;   //先判断b/k是否是整数                 if(a==s(i,t))                sum++;             }         }        cout<<sum<<endl;     }    return 0;}int s(int n,int m){    int h=(n<m)?n:m;    for(int i=h;i>=1;i--)    {        if(n%i==0&&m%i==0)        {            return i;        }    }}
2 0
原创粉丝点击