• 注册
当前位置:1313e > 默认分类 >正文

noj 2069 赵信的往事 [yy题 无限gcd]

njczy2010
2069
Accepted
31MS
 224K
1351Byte
G++
2014-11-13 13:32:56.0

坑爹的无限gcd,,,尼玛想好久,原来要x对y算一次,y再对x算一次,,,

 

 

赵信的往事

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 20            测试通过 : 2 

描述


输入

输出

样例输入

样例输出

提示

题目来源

 

 

 1 #include
 2 #include
 3 #include
 4 #include
 5 #include<string>
 6 #include
 7 #include
 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\n",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\n");
58     cal(a[0],a[1]);
59     cal(a[1],a[0]);
60     if(flag==0) return;
61   //  printf(" sss2\n");
62     cal(a[0],a[2]);
63     cal(a[2],a[0]);
64 }
65 
66 void out()
67 {
68     //printf(" oooo\n");
69     if(flag==1){
70         printf("YES\n");
71     }
72     else{
73         printf("NO\n");
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 }

 

转载于:https://www.cnblogs.com/njczy2010/p/4094755.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录