Prime Gap--素数打表
2013-03-12 19:17
309 查看
Description
The sequence of n − 1 consecutive composite numbers (positive integers that are not prime and not equal to 1) lying between two successive prime numbers p and p + n is
called a prime gap of length n. For example, ‹24, 25, 26, 27, 28› between 23 and 29 is a prime gap of length 6.
Your mission is to write a program to calculate, for a given positive integer k, the length of the prime gap that contains k.
For convenience, the length is considered 0 in case no prime gap contains k.
Input Description
The input is a sequence of lines each of which contains a single positive integer. Each positive integer is greater than 1 and less than or equal to the 100000th prime number, which is 1299709. The end of the input is
indicated by a line containing a single zero.
Output Description
The output should be composed of lines each of which contains a single non-negative integer. It is the length of the prime gap that contains the corresponding positive integer in the input if it is a composite number,
or 0 otherwise. No other characters should occur in the output.
Sample Input
Sample Output
The sequence of n − 1 consecutive composite numbers (positive integers that are not prime and not equal to 1) lying between two successive prime numbers p and p + n is
called a prime gap of length n. For example, ‹24, 25, 26, 27, 28› between 23 and 29 is a prime gap of length 6.
Your mission is to write a program to calculate, for a given positive integer k, the length of the prime gap that contains k.
For convenience, the length is considered 0 in case no prime gap contains k.
Input Description
The input is a sequence of lines each of which contains a single positive integer. Each positive integer is greater than 1 and less than or equal to the 100000th prime number, which is 1299709. The end of the input is
indicated by a line containing a single zero.
Output Description
The output should be composed of lines each of which contains a single non-negative integer. It is the length of the prime gap that contains the corresponding positive integer in the input if it is a composite number,
or 0 otherwise. No other characters should occur in the output.
Sample Input
10 11 27 2 492170 0
Sample Output
4 0 6 0 114
#include <iostream> //复数,不是1也不是素数 //如果没有素数间隙包含K的话,那么直接输出0 #include <cstdio> #include <cstring> #include <string> using namespace std; //素数打表得打到130W个 #define maxn 1300000 bool vis[maxn]; int B[120000]; int main() { memset(vis,0,sizeof(vis)); vis[0]=vis[1]=1; for(int i=2;i*i<=maxn;i++) { if(!vis[i]) { for(int j=i*i;j<=maxn;j+=i) { vis[j]=1; } } } int k=1; for(int i=2;i<=maxn;i++) { if(!vis[i])B[k++]=i; } int n; while(scanf("%d",&n)!=EOF&&n) { if(n==2||n==1299709||!vis ) { printf("%d\n",0); } else { for(int i=1;i<k;i++) { if(B[i]<n&&B[i+1]>n) { printf("%d\n",B[i+1]-B[i]); break; } } } } return 0; }
相关文章推荐
- 习题10-4 UVA 1644 Prime Gap(素数打表+二分查找)
- UVa 1644 - Prime Gap(筛法选素数)
- Sum of Consecutive Prime Numbers POJ - 2739 素数打表—埃氏筛法
- HDU Prime Ring Problem (DFS+素数打表)
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表+素数搜索)
- POJ 3518 Prime Gap(素数题)
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表 + 暴力)
- Prime Gap (素数)
- POJ 3126 Prime Path(BFS + 素数打表)
- POJ 2739 E - Sum of Consecutive Prime Numbers 素数打表+尺取法
- POJ 2739 Sum of Consecutive Prime Numbers 素数打表+尺取法
- UVa 1644 - Prime Gap(筛选求素数)
- Prime Path BFS 打表求素数
- hdu1016 Prime Ring Problem dfs 素数打表
- UVA1210Sum of Consecutive Prime Numbers(素数打表 + 连续和)
- POJ 3518 Prime Gap(素数题)
- Prime Distance poj 2689 区间内的素数打表模板
- PKU Prime Gap 3518 简单素数
- poj3262 Prime Path 素数打表+bfs
- POJ 3518 Prime Gap(素数)