使用筛法打印质数

Posted rivenlw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用筛法打印质数相关的知识,希望对你有一定的参考价值。

public static void main(String[] args) {
        
        //范围:2到多少
        int maxfanwei = 20;
        
        boolean[] bolist = new boolean[maxfanwei+1];
        
        for (int i = 2; i < bolist.length; i++) {
            boolean isnotsushu = bolist[i];//不是素数true,是素数false
            if(!isnotsushu){
                int xiabiao = i;
                //这个数的倍数设置为true
                while (true) {
                    xiabiao+=i;
                    if (xiabiao>=(maxfanwei+1)) {
                        break;//超过范围退出设置
                    }
                    bolist[xiabiao] = true;
                }
            }
            
        }
        //打印质数
        for (int i = 2; i < bolist.length; i++) {
            if (!bolist[i]) {
                System.out.println(i+"    ");
            }
            
        }
        
        
    }

 

以上是关于使用筛法打印质数的主要内容,如果未能解决你的问题,请参考以下文章

Eular质数筛法

质数判断(欧拉筛法)

1181 质数中的质数(质数筛法)

51NOD 1181 质数中的质数(质数筛法)

51nod 1181 质数中的质数(质数筛法)

1181 质数中的质数(质数筛法)(51NOD基础)