POJ3518:
输入一个数输出其左右两侧素数的距离。
素筛法打素数表。
for(int i=2;i*i<len;i++){
if(!b[i]){
for(int j=i;j*i<len;j++){
b[i*j]=true;
}
}
}
import java.io.BufferedInputStream;
import java.util.Scanner;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Sot_fzh
*/
public class Main {
static final int len=1299710;
public static void main(String[] args) {
Scanner scan=new Scanner(new BufferedInputStream(System.in));
int m=scan.nextInt();
boolean[]b=new boolean[len]; //为true代表不是素数,false是素数
b[0]=b[1]=true;
for(int i=2;i*i<len;i++){
if(!b[i]){
for(int j=i;j*i<len;j++){
b[i*j]=true;
}
}
}
while(m!=0){
int i,j;
i=j=m;
while(b[i--]);
while(b[j++]);
System.out.println(j-i-2);
m=scan.nextInt();
}
}
}