创富心水论坛

您当前位置:彩霸王论坛 > 创富心水论坛 >

Java中的素数生成算法- Eratosthenes的筛选实例

发布日期:2019-03-06   

Eratosthenes算法的Sieve非常简单。可以通过指定的整数创建大于1的数组,以便该数组的索引表示存储在其上的实际整数。而后从2开始,因为0跟1不被认为是素数。

为了超越所有乘以2的数字,咱们只是将数组计数器跳过2,这象征着2,4,6,8都是2的倍数,它们将被交叉。数组中的下一个数字是3,当初3也不能被任何人整除,因此它是素数,我们将其标记为素数,并再次划掉所有3的倍数,因为它们不是素数。

Eratosthenes Sieve of Eratosthenes是一种古希腊算法,用于查找给定数字之前的所有素数,以希腊著名数学家Eratosthenes的名字命名。他是第一个打算地球周长的人,也因研究历法闰年而驰誉。

素数要么能被1整除要么能被本身整除,它不其余因数。因为2是素数,咱们把它标志为素数而后划掉所有倍数由于它们不是素数,为什么?因为素数不具备除1之外的任何因子,并且如果数字是2的倍数,则象征着它能够被2整除,因而不是素数。

Eratosthenes算法的Sieve如何工作

良好的数据结构跟算法常识是成为一个更好的程序员的第一步。为了持续这个传统,今天我将分享一个有趣的算法,Eratosthenes算法的Sieve,它可以用来生成质数直到给定的数字。在很多情况下,你需要生成指定整数的所有素数,而最常用于生成素数的算法是Eratosthenes算法的 Sieve。然而很少有开发人员知道这个算法,特别是Java程序员,这主要是因为不进行足够的竞争性编程。

素数是一个整数,它可以被1整除也可以像2 3 5这样被自身整除,而不能被任何正整数整除。

换句话说,素数不存在1或其自身的因子。可能应用此算法天生从1到100或任意最大值的素数。

在本文中,不仅将学习Eratosthenes Sieve算法的工作原理,还将利用该算法生成素数,并验证生成的所有数是否都是素数。