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;
}