随笔 - 147  文章 - 71  trackbacks - 0
<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿(1)

随笔分类(146)

随笔档案(147)

文章分类(28)

文章档案(28)

喜欢的Blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜

http://acm.pku.edu.cn/JudgeOnline/problem?id=3518

【题意简述】输入一个整数,输出这个整数相邻的2个素数之间的长度,若该整数本身就是素数,则直接输出0。
【分析】素数选择法。

import java.util.*;
import java.io.*;

public class poj_3518{
    
    
public static void main(String rgs[]) throws Exception
    
{
        
boolean[] prime=new boolean[1299710];
        Arrays.fill(prime,
true);
        prime[
1= false;
        prime[
0= false;
        
for(int i=2; i<=10000++i){
            
if(prime[i])
                
for (int j=i; i*j<1299710++j)
                    prime[i
*j] = false;
        }

        
int n, left, right;
        Scanner cin 
= new Scanner(new BufferedInputStream(System.in));
        n 
= cin.nextInt();
        
while(n!=0){
            
if(prime[n])
                System.out.println(
0);
            
else{
                right 
= left = n;
                
while(!prime[--left]);
                
while(!prime[++right]);
                System.out.println(right 
- left);                
            }

            n 
= cin.nextInt();
        }

    }

}
posted on 2009-09-02 15:20 飞翔天使 阅读(493) 评论(0)  编辑  收藏 所属分类: poj

只有注册用户登录后才能发表评论。


网站导航: