对于一个序列 A ,要判断 A 中元素的最小公倍数能否整除 k ,为什么在计算过程中对k取模是正确的?
具体例子:CF687B
typedef long long ll;
ll gcd(ll a, ll b){
if(b==0)return a;
return gcd(b, a%b);
}
int main(){
int n, k;
ll ans = 1, c;
scanf("%d%d", &n, &k);
for(int i = 1; i<=n; i++){
scanf("%lld", &c);
ans = ans/gcd(c, ans)*c%k;
if(!ans){
cout << "Yes";
return 0;
}
}
cout << "No";
return 0;
}