【Primes on Interval】
来源:互联网 发布:多功能圣经软件下载 编辑:程序博客网 时间:2024/05/28 15:07
Description
You've decided to carry out a survey in the theory of prime numbers. Let us remind you that a prime number is a positive integer that has exactly two distinct positive integer divisors.
Consider positive integers a, a + 1, ..., b (a ≤ b). You want to find the minimum integer l (1 ≤ l ≤ b - a + 1) such that for any integerx (a ≤ x ≤ b - l + 1) among l integers x, x + 1, ..., x + l - 1 there are at least k prime numbers.
Find and print the required minimum l. If no value l meets the described limitations, print -1.
Input
A single line contains three space-separated integers a, b, k (1 ≤ a, b, k ≤ 106; a ≤ b).
Output
In a single line print a single integer — the required minimum l. If there's no solution, print -1.
Sample Input
2 4 2
3
6 13 1
4
1 4 3
-1
主要还是题意难以理解在区间 [a,b] 找出一个最小的区间长度 l
使得区间[a,b]长度为l的子区间,含有至少k个质数
先打一个质数表,进行累加,用二分查找 l对每一个l进行验证,直到找到最小的l
<span style="font-size:18px;">#include<cstdio>#include<cstring>#define maxn 1000000int prime[maxn+11];int num[maxn+11];int a,b,k; void prime_table(){int i,j;memset(prime,0,sizeof(prime));memset(num,0,sizeof(num)); prime[0]=prime[1]=1;for(i=2;i<=maxn;++i){if(!prime[i]){for(j=i+i;j<=maxn;j+=i)prime[j]=1; } }prime[0]=prime[1]=0; for(i=2;i<=maxn;++i){if(prime[i])prime[i]=0;elseprime[i]=1;prime[i]+=prime[i-1]; } } int judge(int mid){int i;mid-=1;for(i=a;i+mid<=b;++i){if(prime[i+mid]-prime[i-1]<k)return 0; } return 1;} int main(){prime_table(); scanf("%d%d%d",&a,&b,&k);int l=1,r=b-a+1,mid,ans;if(prime[b]-prime[a-1]>=k){while(l<=r){mid=(l+r)>>1;if(judge(mid)){ans=mid;r=mid-1;} elsel=mid+1; }printf("%d\n",ans); }elseprintf("-1\n"); return 0; }</span><span style="font-size:14px;"> </span>
- Primes on Interval
- codeforces237C Primes on Interval
- 【codeforces237C】Primes on Interval
- 【Primes on Interval】
- Primes on Interval
- 【codeforce237C】Primes on Interval
- 237C - Primes on Interval
- cf273C. Primes on Interval【二分】
- ZCMU-1022-Primes on Interval
- codeforces 237C.Primes on Interval
- Primes on Interval+codeforces+筛选法打表
- CodeForces-237C- Primes on Interval
- Codeforces 237C Primes on Interval 【二分】
- 【 Codeforces 237C Primes on Interval】+ 二分
- CodeForces 237C Primes on Interval
- CodeForces - 237C Primes on Interval 【二分】
- Codeforces 237C Primes on Interval
- Primes on Interval 【打表+二分】
- 字符串操作函数
- Python3学习二之基本数据类型
- java 引用
- vector效率低怎么破?
- C++“准”标准库Boost学习指南(2):Boost.Conversion
- 【Primes on Interval】
- 导航栏效果
- WSASocket()与Socket()的区别
- I/O流之内存流
- 互联网广告系统综述五系统架构
- 顾问式销售的双赢理念
- 轮播图
- 杭电oj编码2009
- 京东版轮播图