Cave Painting

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
using namespace std;
//typedef pair 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;
}

你可能感兴趣的:(Cave Painting)