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

来源:互联网 发布:下载中国网络电视台直播 编辑:程序博客网 时间:2024/06/16 14:41
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;i<n-2;i++)           a[i]=i+2;        for(int i=1;i<n-2;i++)        {            for(int j=0;j<i;j++)            if(a[j]!=0)            if(a[i]%a[j]==0)            a[i]=0;        }        for(int i=0;i<n-2;i++)        if(a[i]!=0)        System.out.println(a[i]+" ");                   }}

运行结果如下:
这里写图片描述

0 0