Java之用厄拉多塞筛选法求n以内的所有素数

import java.util.Scanner;
public class eladuosai
{
    public static void main(String []args)
    /**首先将2~n放入一个筛集,将已知的最小的素数2放入素数集,
     *再去掉筛集中所有2的倍数,筛集中最小值3即为新找到的素数,
     *再去掉3的所有倍数,筛集中最小值即为新找到的素数。
     *依次执行上去,直到筛集为空,素数集中的数就是我们要找的素数。
     **/
    {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个整数n");
        int n = sc.nextInt();
        int a[] =new int[n-2];
        for(int i=0;i2;i++)
           a[i]=i+2;
        for(int i=1;i2;i++)
        {
            for(int j=0;jif(a[j]!=0)
            if(a[i]%a[j]==0)
            a[i]=0;
        }
        for(int i=0;i2;i++)
        if(a[i]!=0)
        System.out.println(a[i]+" ");               
    }
}

运行结果如下:
Java之用厄拉多塞筛选法求n以内的所有素数_第1张图片

你可能感兴趣的:(java)