comet_c1360

Posted ean1zhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了comet_c1360相关的知识,希望对你有一定的参考价值。

这道题目提示了波兰特-切比雪夫定理,然后可以知道

在[n,2n]之间必然存在一个素数。

而题目给的n,k;

即从k+1开始,传向[2,n+1];

那么必然存在一个素数p 在 [(n+1)/2,n+1]之间,只要传到这个p,下一步即可覆盖整个区间.

随后的步骤就可以确定了,就是判断k+1是[n+1/2+1,n+1]的素数.

代码如下:

#include<iostream>
#include<queue>
#include<string>
#include<cstring>
#include<map>
#include<algorithm>
#include<cmath>
using namespace std;
bool isprime(long long x){
    if(x<=3)
        return x>1;
    if(x%6!=1&&x%6!=5)
        return false;
    long long k=sqrt(x);
    for(int i=5;i<=k;i+=6){
        if(x%i==0||x%(i+2)==0)
            return false;
    }
    return true;
}
int main(){
    long long n,k;
    cin>>n>>k;
    if(2*k+2<=n+1){
        cout<<2<<endl;
    }
    else{
        if(isprime(k+1))
            cout<<1<<endl;
        else
            cout<<2<<endl;
    }
    return 0;
}

以上是关于comet_c1360的主要内容,如果未能解决你的问题,请参考以下文章

雷达通信基于matlab间接卡尔曼滤波IMU与GPS融合含Matlab源码 1360期

CF1360H Binary Median

JZYZOJ 1360 [usaco2011feb]人品问题 DP 树状数组 离散化

Vijos P1360 八数码问题

p1360

圈圈.代码现象_3.4