博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Primes on Interval(二分 + 素数打表)
阅读量:4993 次
发布时间:2019-06-12

本文共 2191 字,大约阅读时间需要 7 分钟。

Primes on Interval
Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u
   
Appoint description:
 System Crawler  (2016-04-26)

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 integer x(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 ≤ 106a ≤ b).

Output

In a single line print a single integer — the required minimum l. If there's no solution, print -1.

Sample Input

Input
2 4 2
Output
3
Input
6 13 1
Output
4
Input
1 4 3
Output
-1 题意: 求最小的l使 x, x + 1, ..., x + l - 1 there are at least k prime numbers; 简单二分;
#include
#include
#include
#include
using namespace std;const int MAXN = 1e6 + 100;int dp[MAXN];int vis[MAXN];void db(){ memset(vis, 0, sizeof(vis)); vis[1] = 1; for(int i = 2; i <= sqrt(MAXN); i++){ if(!vis[i]){ for(int j = i * i; j < MAXN; j += i){ vis[j] = 1; } } } dp[0] = 0; for(int i = 1; i < MAXN; i++){ dp[i] = dp[i - 1]; if(!vis[i])dp[i]++; }}bool js(int l, int a, int b, int k){ for(int i = a; i <= b - l + 1; i++){ if(dp[i + l - 1] - dp[i - 1] < k)return false; } return true;}int erfen(int l, int r, int a, int b, int k){ int mid, ans = -1; while(l <= r){ mid = (l + r) >> 1; if(js(mid, a, b, k)){ ans = mid; r = mid - 1; } else l = mid + 1; } return ans;}int main(){ db(); int a, b, k; while(~scanf("%d%d%d", &a, &b, &k)){ printf("%d\n", erfen(0, b - a + 1, a, b, k)); } return 0;}

 

转载于:https://www.cnblogs.com/handsomecui/p/5440258.html

你可能感兴趣的文章
hdu 1010(DFS) 骨头的诱惑
查看>>
(转)Android SDK Manager国内无法更新的解决方案
查看>>
SQL语句修改表
查看>>
ubutnu 挂载磁盘
查看>>
continue 和 break的实例
查看>>
Java学习笔记()ArrayList
查看>>
redis缓存清除
查看>>
django Highcharts制作图表--显示CPU使用率
查看>>
文本处理 tr ,col,join,paste
查看>>
oracle权限
查看>>
java方法的虚分派和方法表
查看>>
【转】字符串和浮点数格式化输出小结
查看>>
Android开发 - Retrofit 2 使用自签名的HTTPS证书进行API请求
查看>>
对测试人员或开发人员来说相互沟通有多重要?
查看>>
解释器、编译器以及他们之间的差别。
查看>>
MongoDB的快速手动安装
查看>>
JS制作简单的日历控件【JS Date对象操作实例演示】
查看>>
模板—树上倍增LCA
查看>>
高二小假期集训—D5
查看>>
EasyUI easyui-combobox 重复发送请求
查看>>