怎么改都是60分,求助
查看原帖
怎么改都是60分,求助
1054515
Ivan2012楼主2024/7/29 14:26
#include<bits/stdc++.h>
using namespace std;
long long t,a0,a1,b0,b1,ans,x,y;
long long __gcd2(long long a,long long b){
	return (a/__gcd(a,b))*(b/__gcd(a,b))*__gcd(a,b);
}
int main() {
    cin>>t;
    for(long long i=1;i<=t;i++){
    	ans=0;
        scanf("%d %d %d %d",&a0,&a1,&b0,&b1);
        for(x=1;x<=sqrt(b1);x++){
			if(__gcd(x,a0)==a1&&__gcd2(x,b0)==b1){
	            ans++;
	        }
	        if(i!=b1/i){
	            if(__gcd(b1/x,a0)==a1&&__gcd2(b1/x,b0)==b1){
	               	ans++;
                }
	        }
        } 
        printf("%d\n",ans);
    }
    return 0;
}
2024/7/29 14:26
加载中...