C. Primes on Interval
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

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 aa + 1, ..., b (a ≤ b).
You want to find the minimum integer l (1 ≤ l ≤ b - a + 1) such
that for any integer x(a ≤ x ≤ b - l + 1) among l integers xx + 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.

Examples
input
2 4 2
output
3
input
6 13 1
output
4
input
1 4 3
output
-1

题目意思看了老半天,冷静分析终于摸清了题意,就是求a,b范围内任意一段包含k个素数的最小长度L;用常规方法的话也可以,但是可能会很麻烦;这里可以用一种二分查找,但都是要打表的;

#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int N=1000000+10;
int a,b,k,s[N],ss[N];
void dabiao()
{
memset(s,0,sizeof(s));
memset(ss,-1,sizeof(ss));
ss[0]=ss[1]=0;
for(int i=2; i<=N; i++)
{
s[i]=s[i-1];
if(ss[i])
s[i]+=1;//打表;
if(ss[i])
{
if(i>N/i) continue;
for(int j=i*i; j<=N; j+=i)
ss[j]=0;//筛法;
}
}
}
int cha(int x)
{
for(int i=a; i<=b-x+1; i++)
if(s[i+x-1]-s[i-1]<k)
return 0;
return 1;
}
int main()
{
dabiao();
while(~scanf("%d%d%d",&a,&b,&k))
{
if(s[b]-s[a-1]<k)
printf("-1\n");整个区间内的素数个数;
else
{
int x=0;
int l=1,r=b-a+1;
while(l<=r)
{
int mid=(l+r)/2;
if(cha(mid))
{
x=mid;
r=mid-1;
}
else
l=mid+1;
}
printf("%d\n",x);
}
}
return 0;
}

其实理清了思路就不会很难;由此可见思路的重要性;

最新文章

  1. TCP三次握手/四次挥手详解
  2. Linux QT
  3. CentOS网络配置详解
  4. Random.nextint() 和Math.random()的区别
  5. Spring MVC+Maven+Freemarker+Mybatis开发环境搭建
  6. C#相关时间DateTime格式化
  7. 简易浏览器App webview
  8. 最新的手机/移动设备jQuery插件
  9. oauth2认证
  10. [Windows Phone]修改应用程序主题
  11. POJ 1252 Euro Efficiency
  12. JQuery中参数e,event
  13. Problem G
  14. MFC半透明对话框
  15. Nginx-Tomcat搭建负载均衡(转载)
  16. 解析ReentrantLock实现原理
  17. js设置高度和宽度相等
  18. git 分支命名规范
  19. Highcharts 时间格式化函数
  20. 关于Python的import机制原理

热门文章

  1. H5页面快速搭建之高级字体应用实践
  2. iOS之tableView性能优化/tableView滑动卡顿?
  3. 【转】java序列化一定要应该注意的6个事项!
  4. 【经验总结】VS2010下建立MFC程序
  5. Android SlidingTabLayout的使用--替代ActionBar的Tab导航
  6. 从源码中无法看出函数所在的js脚本的解决方法
  7. WPF知识点全攻略01- WPF相对WinFrom的优缺点
  8. javaweb系列-关于HttpSessionListener的sessionDestroyed什么时候触发
  9. lodash中文说明文档
  10. ssget使用方法