[暑假集训--数论]poj3518 Prime Gap
2017-08-04 15:24
162 查看
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
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
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
给个x,如果x夹在两个质数a,b之间,求b-a,否则输出0
在筛法的时候预处理下距离就好
poj 3518
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
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
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
给个x,如果x夹在两个质数a,b之间,求b-a,否则输出0
在筛法的时候预处理下距离就好
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #define LL long long 5 using namespace std; 6 inline LL read() 7 { 8 LL x=0,f=1;char ch=getchar(); 9 while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} 10 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} 11 return x*f; 12 } 13 LL n; 14 bool mk[2000010]; 15 int p[2000010],len; 16 int ans[2000010]; 17 inline LL LLabs(LL a){return a<0?-a:a;} 18 inline void getp() 19 { 20 memset(ans,-1,sizeof(ans)); 21 for (int i=2;i<=2000000;i++) 22 { 23 if (!mk[i]) 24 { 25 p[++len]=i; 26 ans[i]=0; 27 for (int j=2*i;j<=2000000;j+=i)mk[j]=1; 28 }else ans[i]=ans[i-1]+1; 29 } 30 for (int i=2000000;i>=1;i--) 31 { 32 if (!ans[i])continue; 33 ans[i]=max(ans[i],ans[i+1]); 34 } 35 } 36 int main() 37 { 38 getp(); 39 ans[1]=-1; 40 while (~scanf("%lld",&n)&&n)printf("%d\n",ans ?ans +1:0); 41 }
poj 3518
相关文章推荐
- (数论2.1.4)POJ3518 Prime Gap(埃拉托斯特尼筛法)
- [暑假集训--数论]poj1595 Prime Cuts
- [暑假集训--数论]hdu2136 Largest prime factor
- POJ3518Prime Gap(二分查找)
- [暑假集训--数论]poj1061 青蛙的约会
- POJ 3518 Prime Gap(数论)
- 暑假集训-组合数学及数论
- [暑假集训--数论]poj2773 Happy 2006
- [暑假集训--数论]poj2657 Comfort
- [暑假集训--数论]poj2142 The Balance
- [暑假集训--数论]poj1730 Perfect Pth Powers
- [暑假集训--数论]poj2909 Goldbach's Conjecture
- 暑假集训-组合数学及数论
- [暑假集训--数论]poj2262 Goldbach's Conjecture
- POJ3518_Prime Gap【素数】【水题】
- [暑假集训--数论]poj2034 Anti-prime Sequences
- poj3518 Prime Gap
- [暑假集训--数论]poj1365 Prime Land
- [暑假集训--数论]poj2115 C Looooops
- [暑假集训--数论]hdu1019 Least Common Multiple