Accepted
|
31MS
|
224K
|
1351Byte
|
2014-11-13 13:32:56.0
|
坑爹的无限gcd,,,尼玛想好久,原来要x对y算一次,y再对x算一次,,,
赵信的往事
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 20 测试通过 : 2
总提交 : 20 测试通过 : 2
描述
输入
输出
样例输入
样例输出
提示
题目来源
1 #include<cstdio> 2 #include<cstdlib> 3 #include<cmath> 4 #include<cstring> 5 #include<string> 6 #include<iostream> 7 #include<algorithm> 8 #include<set> 9 #define maxi(a,b) (a)>(b)?(a):(b) 10 #define mini(a,b) (a)<(b)?(a):(b) 11 #define N 1000005 12 #define mod 10000 13 #define ll long long 14 15 using namespace std; 16 17 int T; 18 int flag; 19 int a[5]; 20 21 int gcd(int x,int y) 22 { 23 if(y==0) 24 return x; 25 return gcd(y,x%y); 26 } 27 28 void ini() 29 { 30 flag=1; 31 scanf("%d%d%d",&a[0],&a[1],&a[2]); 32 //printf("%d %d %d ",a[0],a[1],a[2]); 33 sort(a,a+3); 34 } 35 36 37 void cal(int x,int y) 38 { 39 int g; 40 if(x==1 && y==1) return; 41 g=gcd(x,y); 42 x/=g; 43 y/=g; 44 if(x==1 && y==1) return; 45 else if(g==1 && y%x!=0){ 46 flag=0;return; 47 } 48 else{ 49 cal(x,g); 50 } 51 return; 52 //} 53 } 54 55 void solve() 56 { 57 // printf(" sss "); 58 cal(a[0],a[1]); 59 cal(a[1],a[0]); 60 if(flag==0) return; 61 // printf(" sss2 "); 62 cal(a[0],a[2]); 63 cal(a[2],a[0]); 64 } 65 66 void out() 67 { 68 //printf(" oooo "); 69 if(flag==1){ 70 printf("YES "); 71 } 72 else{ 73 printf("NO "); 74 } 75 } 76 77 int main() 78 { 79 // freopen("data.in","r",stdin); 80 scanf("%d",&T); 81 while(T--) 82 // while(scanf("%I64d",&n)!=EOF) 83 { 84 ini(); 85 solve(); 86 out(); 87 } 88 return 0; 89 }