多语言展示
当前在线:193今日阅读:91今日分享:37

Java如何编程统计给定整数范围内质数的个数

题目:统计所有小于非负整数 n 的质数的数量。质数定义:只能被1和其本身整除的数,是质数,最小的质数是2。 本篇经验将分享两个算法,一个是逐个判断算法,其时间复杂度为 O(N²),另一个是排除算法,其时间复杂度为 O(NlogN)。
工具/原料
1

Eclipse

2

JDK1.8

方法/步骤
1

实现判断一个数字是否是质数的方法图示,从2开始遍历,直到参数的开方根,判断是否有数字是参数的因子,如果存在,则该参数不是质数,否则就是质数。

2

实现逐个判断算法图示,从2开始遍历数字区间,并调用上述方法判断当前数字是否是质数,统计区间内所有质数的数量。

3

测试逐个判断算法图示,主方法中调用该算法获取指定参数区间内的质数数量,并打印到控制台,观察输出,符合预期。

5

实现排除算法算法思想:对于一个质数,其倍数一定不是质数,根据这个思想,创建一个参数大小的boolean数组,从第一个质数2开始遍历,如果当前是质数,则将其所有倍数全部更新为非质数即可。

6

测试排除算法图示,观察控制台输出,符合预期

7

平台提交排除算法图示,测试通过,并且相比逐个判断算法,该算法性能也有了很大的提升。

注意事项

只能被1和其本身整除的数,是质数,最小的质数是2

推荐信息