[Codeforces688D]Remainders Game(扩展中国剩余定理)

来源:互联网 发布:天刀相见欢染色数据 编辑:程序博客网 时间:2024/05/16 06:19

题目描述

传送门

题解

实际上就是道sb题
不互质的数用扩展中国剩余定理合并的话,实际上最后的模数就是lcm
判断lcm是否是k的倍数即可

代码

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define LL long long#define N 1000005int n;LL m[N],k;LL gcd(LL a,LL b){    if (!b) return a;    else return gcd(b,a%b);}int main(){    scanf("%d%I64d",&n,&k);    for (int i=1;i<=n;++i) scanf("%I64d",&m[i]);    m[1]%=k;    for (int i=2;i<=n;++i)    {        m[i]=m[i-1]*m[i]/gcd(m[i-1],m[i]);        m[i]%=k;    }    if (!m[n]) puts("Yes");    else puts("No");}
0 0
原创粉丝点击