题目链接:https://codeforc.es/contest/687/problem/B
题目大意:有两个数,给出个数,可以知道的值(但是未给出),问你能否唯一确定的值。
思路:假设不能唯一确定的值,那么就假定存在两个数
使得:,即:
且对于每一个,都有:
那么:
即:
所以:如果,则不能,否则可以。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b){
return b==0?a:gcd(b,a%b);
}
ll lcm(ll a,ll b){
return a*b/gcd(a,b);
}
const int maxn=1e6+10;
int main()
{
ll n,k;
scanf("%lld%lld",&n,&k);
ll ans=1;
ll tmp;
while(n--){
scanf("%lld",&tmp);
ans=lcm(ans,tmp)%k;
}
if(ans!=0){
printf("No\n");
}
else{
printf("Yes\n");
}
return 0;
}