題目鏈接: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;
}