Java 埃拉托色尼筛选法

本文介绍了埃拉托色尼筛选法的概念、步骤和优化,并提供了Java代码实现。该算法用于生成不超过给定整数n的质数序列,通过消除每个质数的倍数来筛选质数。

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

埃拉托色尼筛选法

概念

埃拉托色尼筛选法(the Sieve of Eratosthenes)简称埃氏筛法,是古希腊数学家埃拉托色尼提出的一种筛选法
作用:
产生一个不大于给定整数n的连续质数序列
(质数是大于 1 并且只有 1 和 这个素数本身作为因数(因子) 的正整数。)

步骤

  1. 初始化一个2~n的连续整数序列,作为候选质数(1只有它自己本身这一个因数。所以1既不是质数,又不是合数)
  2. 找到当前最小的数2,消去2的倍数,例如4,6,8等
  3. 再指向下一个最小的数3,消去3的倍数,例如6,9,12等
  4. 再指向下一个最小的数5,消去5的倍数,例如10,15,20等
    .
    .
    .
  5. 该算法 以这个方式不断的做下去直到序列中已经没有可以消去的元素为止,剩下的就是我们要求的质数

优化

  • 根据上面的步骤我们发现有很多数字被重复消去,比如6被消去了两次
  • 消去x的倍数时, x 2 x^2 x2不会大于n,p也不会大于 n \sqrt[]{n} n
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值