2021.08.12 最大公因数、最小公倍数
[P1072 NOIP2009 提高组] Hankson 的趣味题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int t,a0,a1,b0,b1;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
s=s*10+ch-'0';
ch=getchar();
}
return s*w;
}
int gcd(int x,int y){
return y==0?x:gcd(y,x%y);
}
int main(){
t=read();
while(t--){
a0=read();a1=read();b0=read();b1=read();
int ai=a0/a1,bi=b1/b0;
int ans=0;
for(int i=1;i*i<=b1;i++){
if(b1%i==0){
if(i%a1==0&&gcd(i/a1,ai)==1&&gcd(bi,b1/i)==1)++ans;
int ii=b1/i;
if(i==ii)continue;
if(ii%a1==0&&gcd(ii/a1,ai)==1&&gcd(bi,b1/ii)==1)++ans;
}
}
cout<<ans<<endl;
}
return 0;
}
posted on
浙公网安备 33010602011771号