题解 CF687B 【Remainders Game】

题意:

给出c1,c2,...cn,问对于任何一个正整数x,给出x%c1,x%c2,...的值x%k的值是否确定;

思路:

中国剩余定理。详见https://blog.csdn.net/acdreamers/article/details/8050018


代码:

#include<bits/stdc++.h>//万能头文件
using namespace std;//使用标准名字空间
long long gcd(long long a,long long b){//使用递归求两个数的最大公因数
    if(b==0) return a;//如果有一个数为0,就返回另一数
    return gcd(b,a%b);//否则递归下一层
}
long long n,m;
int main()
{
    cin>>n>>m;//输入n和m
    long long x,ans=1;//定义各数初值
    while(n--){
        scanf("%lld",&x);//输入序列
        ans=ans/gcd(ans,x)*x%m;//求它们的最小公倍数
    }
    if(ans%m)cout<<"No"<<endl;//如果不是m的倍数,就输出“NO”
    else cout<<"Yes"<<endl;//否则输出“Yes”
    return 0;//结束
}            

猜你喜欢

转载自www.cnblogs.com/xsl19/p/10414676.html
今日推荐