https://vjudge.net/contest/217165#problem/B
题意
给出两个数n和k。问n%i (1<=i<=k) 的结果是否都互不相等,如果是则输出Yes,否则输出No。
思路;
当i=1时 n%1=0
当i=2时 n%2 为0或者1,但是0 被i=1,时占用,则 n%2只能为1;
当i=3时 n%3=2
当i=4时 n%4=3
当i=5时 n%5=4
。。。。。
当i=k时 n%k=k-1
所有判断当前n%i的结果是否等于i-1,若不等则直接输出No
#include<cstdio>
using namespace std;
//typedef pair<int,int> pii;
typedef long long ll;
typedef unsigned long long llu;
typedef unsigned int ui;
int main(){
ll n,k;
while(scanf("%lld%lld", &n,&k) == 2){
int flag = 1;
for(int i = 2; i <= k; i++){
if(n % i != i-1){
flag = 0;
break;
}
}
if(flag == 0) printf("No\n");
else printf("Yes\n");
}
return 0;
}
网友评论