参看《算法竞赛入门经典训练指南》
#include<iostream> #include<cstdio> using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } inline int gcd(int a,int b){return b?gcd(b,a%b):a;} int d,n,t,a[10001]; int main(){ d=read(); for(int i=1;i<=d;i++){ n=read();a[1]=read();t=read(); for(int i=2;i<=n-1;i++)a[i]=read(); for(int i=1;i<n;i++){ t/=gcd(t,a[i]); if(t==1){printf("YES\n");break;} } if(t!=1)printf("NO\n"); } return 0; }