【题目】https://vjudge.net/contest/246166#problem/C
【题意】给出n,k,问是否n对1-k每个数取余都不同?
【思路】考虑n=1,k=1||2时,可行,其他k>=n的情况都不可行(n%1==n%n),其他情况枚举,map存余数,如果一个余数出现两次,那么不可行
【代码】
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
const int M=1e9+10;
map<ll,int> mp;
int main()
{
ll n;
ll k;
cin>>n>>k;
if((n==1&&(k==1||k==2)))
cout<<"Yes\n";
else if(n<=k)
cout<<"No";
else
{
for(ll i=1; i<=k; i++)
{
ll a=n%i;
if(mp[a]==1){cout<<"No"<<endl;return 0;}
else mp[a]=1;
}
cout<<"Yes\n";
}
}