CF922C Cave Painting题解--zhengjun

其实是一道结论题。

因为模完之后一定有 \(k\) 个取模后的结果,而每一个取模之后的结果都在 \([0,k-1]\)中。

\(n\%1=0\)

\(n\%2\) 不能和 \(n\%1\) 的结果相同,所以\(n\%2=1\)

同理得,\(n\%3=2\)

\(\cdots\)

\(n\%k=k-1\)

所以,直接验证皆可以了。

优化:如果 \(k>20\) 直接输出 \(No\)

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,k;
int main(){
    scanf("%lld%lld",&n,&k);
    if(!n&&!k)return 1;
    if(k>20)return printf("No\n"),0;
    ll p=1;
    for(int i=1;i<=k;i++)if(n%i!=i-1)return printf("No\n"),0;
    printf("Yes");
    return printf("\n"),0;
}
posted @ 2022-06-11 15:03  A_zjzj  阅读(30)  评论(0编辑  收藏  举报