204  统计小于n的质数的个数(埃氏筛法、欧拉筛法)

本文介绍了如何使用埃氏筛法和欧拉筛法统计小于给定数n的质数数量。这两种算法是数学与计算机科学中常见的寻找质数的方法,具有较高的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                                                                                                                                            点击此处返回总目录

 

一、题目

 

二、数学基础

1. 质数是除了1和它本身之外,不能被其他数整除的正整数,又称素数。比如:2,3,5,7,11...
2. 除1,0以外不是质数的正整数就是合数。质数和合数的区别在于因数的个数,质数只有2个因数,合数有多于2个因数。
3. "0"“1”既不是质数也不是合数。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值