求素数

 1 import java.util.Scanner;

 2 

 3 /**

 4  * Created by Administrator on 14-5-20.

 5  */

 6 public class Sieve {

 7     public static void main(String[] args){

 8         Scanner scanner=new Scanner(System.in);

 9         String str=scanner.nextLine();

10         int num=Integer.parseInt(str);

11         int[] init=new int[num+1];

12         int[] result =new int[num+1];

13         for(int i=2;i<num+1;i++)

14             init[i]=i;

15         for(int i=2;i<java.lang.Math.sqrt(num);i++){

16             int p=init[i];

17             if(p!=0) {

18                 int  j = p*p;

19                 while(j<=num){

20                     if(init[j]!=0)

21                         init[j]=0;

22                     j=j+p;

23                 }

24             }

25         }

26         int j=0;

27         for(int i=2;i<num;i++){

28             if(init[i]!=0)

29                 result[j++]=init[i];

30         }

31         for(int i=0;i<j;i++){

32             System.out.println(result[i]);

33         }

34     }

35 }

 

你可能感兴趣的:(素数)