一、题目
二、数学基础 1. 质数是除了1和它本身之外,不能被其他数整除的正整数,又称素数。比如:2,3,5,7,11... 4. 合数可以表示成几个质数相乘的形式。
三、分析 题目很容易理解。 最容易想到的方法就是根据定义,把从2到n-1的数挨个进行判断是不是质数。判断x的时候,还要套一层循环。这样做效率太低。
四、方法一:埃氏筛 埃拉托斯特尼筛法,简称埃氏筛或爱氏筛,是一种由古希腊数学家埃拉托斯特尼所提出的一种简单检定素数的算法。
开心时刻: 我做题的时候在网上看到一个方法叫厄拉多塞筛法,发现跟埃氏筛法方法一样。于是很迷惑,同样一个方法怎么由两个人提出呢。。然后就觉得这两个方法肯定有哪个地方不一样,肯定是我没有看清楚。。直到我突然想到这种可能: 【方法】 方法如下: 要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。
【原理】 我们先用一个简单的方法来做。比如我们要求26以内的素数。我们用黑色表示素数,红色表示非素数。 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 第一步,2为素数。2的倍数的全部标为合数。2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 第二步,3为素数。3的倍数的全部标为合数。2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 第三步,5为素数。5的倍数的全部标为合数。2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 第四步,7为素数。7的倍数的全部标为合数。2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 第五步,11为素数。7的倍数的全部标为合数。2 3 4 5 6 7 |
204 统计小于n的质数的个数(埃氏筛法、欧拉筛法)
最新推荐文章于 2024-12-04 14:44:36 发布