#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<list>
#include<vector>
using namespace std;
const int maxn=110;
int sum[5000010];
bool vis[5000010];
void init(){
for(int i=2;i*i<5000010;++i){
if(vis[i])continue;
for(int j=i*i;j<5000010;j+=i){
vis[j]=true;
}
}
for(int i=2;i<5000010;++i){
if(!vis[i])sum[i]=sum[i-1]+1;
else sum[i]=sum[i-1];
}
}
bool judge(int mid,int a,int b,int k){
for(int i=a;i<=b-mid+1;++i){
if(sum[i+mid-1]-sum[i-1]<k)return false;
}
return true;
}
int main()
{
init();
int n,i,j,k,a,b,c;
scanf("%d%d%d",&a,&b,&k);
bool sign=false;
int l=1,r=b-a+1;
int ans=-1;
while(l<=r){
int mid=(l+r)>>1;
if(judge(mid,a,b,k)){
ans=mid;
r=mid-1;
}
else {
l=mid+1;
}
}
printf("%d\n",ans);
return 0;
}
cf273C. Primes on Interval【二分】
最新推荐文章于 2020-06-06 11:24:28 发布