题目:P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
代码:
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,y,ans,flag;
int gcd(int x,int y){
return y==0?x:gcd(y,x%y);
}
signed main(){
cin>>x>>y;
for(int i=1;i<=sqrt(x*y);i++){
if(x*y%i==0&&gcd(i,x*y/i)==x){
++ans;
}
if(i*i==x*y) flag=1;
}
cout<<ans*2-flag<<"\n";
return 0;
}