【Python 百练成钢】Python语言解决素数筛选问题的几种方式【朴素素数筛、埃氏筛、欧拉筛

素数:只有两个正因数(1和它本身)的自然数即为质数。比1大但不是素数的数称为合数。

合数:合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数

你可能会说不就是求解质数吗?有什么难的,我三下五除二就给你解决了。只能说雀食是,对

于数据量较小的质数求解,我们分分钟搞定。但是如果我要求对于2-107以内的素数呢?这可

怎么办107的数据量特定要超时了呀。唉好不容易有一道会写的题还给超时了,真气人😈。

今天呢咱们就带大家学习一下,如何优美的求解出大数据量下的素数。


在这里插入图片描述


💟素数筛问题描述💞

=============================================================================


将2~n之间所有的素数筛选出来,其中n<=10^6

样例输入:n 一个整数,作为筛选区间的右边界

样例输出:2-n之间的素数个数(包括n)

使用常规方法进行筛选的话会,如果数据规模较小还可以

如果数据规模较大就会很耗费时间。

可以大致分为一下几类:

  • 新手筛(朴素筛)
  • 新手优化筛
  • 埃拉托斯特尼算法&#
  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值