题目:OpenJudge - 8784:最大公约数和最小公倍数问题
代码:理解题意,得到等式i*j=x*y,i和j的最大公约数为x,x<=i,j<=y。
#include<iostream>
using namespace std;
int gcd(int a,int b){
int t;
while(b){
t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int x,y;
cin>>x>>y;
int ans=0,i;
for(i=x;i<=y;i++){
int j=x*y/i;
if(gcd(i,j)==x&&i*j==x*y) ans++;
}
cout<<ans;
return 0;
}