[水]ZOJ1577

来源:互联网 发布:windows美化大师 编辑:程序博客网 时间:2024/05/01 09:08

给两个数的lcm和gcd求这两个数

首先lcm不能整除gcd是不行的 lcm=a*gcd*b (gcd(a,b)==1)

然后将合法a b枚举求出就好 ab=lcm/gcd          gcd(a,b)==1

然后lcm=gcd的时候判定一下就好

#include <bits/stdc++.h>using namespace std;int xx,yy;void Gao(){    int ans=0;    if (yy%xx!=0)    {        cout<<0<<endl;        return ;    }    if (yy==xx)    {        cout<<1<<endl;        return;    }    int zz=yy/xx;    for (int i=1;i*i<zz;i++)    {        if (zz%i==0)        {            if (__gcd(i,zz/i)==1)                ans+=2;        }    }    cout<<ans<<endl;}int main(){    while (cin>>xx>>yy)        Gao();    return 0;}



0 0
原创粉丝点击