Prime Gap
Time Limit: 5000MS   Memory Limit: 65536K
Total Submissions: 7392   Accepted: 4291

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

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

Source

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define maxn 1300000
bool hash[maxn];
void inithash()
{
int i,j;
for(j=; j<maxn; j+=)
hash[j]=;
for(i=; i<; i+=)
if(!hash[i])
for(j=i*i; j<maxn; j+=i)
hash[j]=;
}
int isprime(int N)
{
if(!hash[N])
return true;
return false;
}
int main()
{
inithash();
int n;
while(scanf("%d",&n),n)
{
int i=n;
while()
{
if(isprime(i))
break;
i++;
}
int j=n;
while()
{
if(isprime(j))
break;
j--; }
printf("%d\n",i-j);
}
return ;
}

最新文章

  1. Angularjs做的一个小页面
  2. 为公司无线网络启用802.1x协议
  3. html --- canvas --- javascript --- 绘图方法
  4. Ext combox 动态 检索
  5. CodeChef November Challenge 2014
  6. mirantis fuel
  7. xargs命令详解
  8. Python闭包及其作用域
  9. IOS学习——iphone X的适配
  10. replace into 浅析之一
  11. vb代码之-------当窗体BorderStyle属性为0时,添加窗口预览到任务栏
  12. 开启mysql-binlog日志操作步骤
  13. 也说Socket
  14. 创建安全客户端Socket
  15. Logging - MVC Using Log4net Save to File and Database
  16. 学习实践之DEMO《nodejs模拟POST登陆》
  17. how-to-view-source-of-chrome-extension
  18. 使用dom4j解析xml为json对象
  19. Linux学习笔记-文件处理和权限命令
  20. 夜神模拟器调试android studio项目

热门文章

  1. Java多线程编程实战指南(核心篇)读书笔记(一)
  2. js 以函数名作为参数动态执行 函数
  3. iad 集成三两事
  4. 基于 od 窗口的anti
  5. HihoCoder 1055 : 刷油漆 树形DP第一题(对象 点)
  6. bzoj 4303 数列
  7. 【mongodb】Mongodb初识
  8. 【java多线程】用户线程和守护线程的区别
  9. maven的pom.xml文件配置说明
  10. 洛谷P2192HXY玩卡片