题目: tzc1537
方法:数论
代码:
//k<=10 000
#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
int num[10005];
int gcd(int a,int b)
{ return b==0?a:gcd(b,a%b); }
int judge(int *x,int k)
{
x[2]/=gcd(x[2],x[1]);
for(int i=3;i<=k;i++)x[2]/=gcd(x[i],x[2]);
return x[2]==1;
}
int main()
{
string s;
while(cin>>s)
{
int i,j=1,tmp=0;
for(i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')tmp=tmp*10+s[i]-'0';
else { num[j++]=tmp; tmp=0; }
}
num[j]=tmp;
//注意当只有一个数的时候必然为整数
if(j==1){cout<<"YES"<<endl; continue; }
if(judge(num,j))cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}