[bzoj1385]Division expression

容易发现a2一定是分母,且容易做到其余都是分子,因此相当于判定a2能否整除a1*a3*……*an,不断让a2除以其与其他数的gcd即可(注意特判n=1)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int t,n,s,x;
 4 int gcd(int x,int y){
 5     if (!y)return x;
 6     return gcd(y,x%y);
 7 }
 8 int main(){
 9     scanf("%d",&t);
10     while (t--){
11         scanf("%d%d",&n,&x);
12         if (n==1){
13             printf("YES
");
14             continue;
15         }
16         scanf("%d",&s);
17         s/=gcd(s,x);
18         for(int i=3;i<=n;i++){
19             scanf("%d",&x);
20             s/=gcd(s,x);
21         }
22         if (s==1)printf("YES
");
23         else printf("NO
");
24     }
25 }
View Code
原文地址:https://www.cnblogs.com/PYWBKTDA/p/11834051.html