水在各个容器之间折腾,不管加减,最后的结果一定是二者的最大公约数的倍数
如果给定的容器的最大公约数与目标是互质的,那么就不能完成
#include <iostream>
#include <memory.h>using namespace std;
int item[ 110];
int gcd( int a, int b)
{
if(b== 0)
return a;
else
return gcd(b,a%b);
}
int main()
{
int n;
while(cin>>n&&n!= 0)
{
for( int i= 0;i<n;i++)
cin>>item[i];
int g=gcd(item[ 0],item[ 1]);
for( int i= 2;i<n;i++)
g=gcd(item[i],g);
long long w;
cin>>w;
if(w%g== 0)
cout<< "YES"<<endl;
else
cout<< "NO"<<endl;
}
}