- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的标题措辞正确吗?
var eratosthenes = function(n) {
// Eratosthenes algorithm to find all primes under n
var array = [], upperLimit = Math.sqrt(n), output = [];
// Make an array from 2 to (n - 1)
for (var i = 0; i < n; i++)
array.push(true);
// Remove multiples of primes starting from 2, 3, 5,...
for (var i = 2; i <= upperLimit; i++) {
if (array[i]) {
for (var j = i * i; j < n; j += i)
array[j] = false;
}
}
for (var i = 2; i < n; i++) {
if(array[i])
output.push(i);
}
return output;
}
fiddle :http://jsfiddle.net/KARZw/
upperLimit = Math.sqrt(n) 的用途是什么?
代码来自:Sieve of Eratosthenes algorithm in JavaScript running endless for large number
最佳答案
数字的最大可能因数是它的平方根。
取17。这是素数吗?您可以天真地寻找 1...17 中的所有因数,或者可以取平方根并从 2-4 中寻找,因为在 4 之后,实际上就没有任何新的可能因数了。
添加更多细节。
让我们看一下简单的模型(是的,不需要检查偶数,因为我们知道它不是偶数,但这非常简单):
Is 17 divisible by 2? No
Is 17 divisible by 3? No
Is 17 divisible by 4? No
Is 17 divisible by 5? No
Is 17 divisible by 6? No
Is 17 divisible by 7? No
....
Is 17 divisible by 16? No
17 是素数。
现在,假设您使用平方根的上限。
is 17 divisible by 2? If it was, it would be 2 x 8 or 2 x 9.
is 17 divisible by 3? If it was, it would be 3 x 5 or 3 x 16.
is 17 divisible by 4? If it was, it would be 4 x 4 or 4 x 5.
现在看看当你达到 5 时会发生什么?您基本上只是转换了这些因素。
17能被5整除吗?如果是的话,那就是 5x3 或 5x4。好吧,这些已经被“17 能被 3 整除”和“17 能被 4 整除”涵盖了
相同的模式会重复到朴素模型的末尾。
因此,一旦您检查了直到该数字的平方根为止的所有可能因数,您就已经检查了该数字的所有可能因数。
关于javascript - Math.sqrt(n) 与用于查找 N 个素数的埃拉托色尼算法相关的函数是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598689/
我正在尝试制作一个素数列表。我已经对它进行了编码,但它只告诉我 1 - 100 的质数是 1。我不确定为什么会发生这种情况。我还想为它制作一个JFrame。 import javax.swing.JO
我正在尝试学习 lisp,但我在处理素数方面遇到了一些困难。我需要一个函数 is-prime,如果它是素数,我必须返回 t,如果不是,我必须返回 nil。 (prime 41) => t (prime
我正在尝试检查给定的数字是否是质数。首先采用试分割法。但该程序的行为很奇怪。这是我使用的。 int no; no = Integer.parseInt(jTextField1.getText());
判断一个数是否为素数。使用代码块 13.12 执行。编译器GNU GCC 4.7.0 #include main() { int input,check,count; printf(
从 Uncle Bob 的书 Clean Code(示例是用 Java 编写的,所以这是我的第一个 Java 翻译),我一直在研究素数的重构示例。 问题是:您将如何重构以下代码? 这里有 4 个版本:
此方法旨在递归地遍历该方法并判断数字是否为“ super 素数”。 super 素数是一个本身是素数的数字,每次它被 10 除时,所有这些数字也是素数。例如 2333 是超素数,因为 233 是素数,
这是一个接受输入并打印它是否为质数的代码最后一个 if 总是打印“false”,为什么? (print "Enter a positive integer") (setq num (read)) (s
我正在尝试生成一个 BigInteger 类型的随机质数,它介于我提供的最小值和最大值之间。 我知道 BigInteger.probablePrime(int bitlength, random),但
背景信息: 所以我想计算一个数内的所有质数,然后将它们相加。 sumPrimes(10) 应该返回 17 因为 2 + 3 + 5 + 7 = 17。 挑战来了 --> https://www.fre
我是 python 的初级程序员,对我正在编写的代码有疑问: number = int(input("Enter a random number: ")) for num in range(1, nu
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概
复制代码 代码如下: <?php for($i = 2; $i < 1001; $i++) { $primes = 0; for($k = 1; $k <
ruby判断一个数是否为质数 质数又称素数。一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数;(除0以外)否则称为合数 。根据算术基本定理,每一个比1大的整数,要么本身是一个质数
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 8 年前。 Improve th
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
经过几个小时的谷歌搜索,我仍然处于停滞状态。如果有人指出我的公式或编码选择中的错误,我将不胜感激。请记住我是 Swift 的新手。我不习惯非 C 风格的 for 循环。 if textFiel
我已将我的问题上传为屏幕截图。 最佳答案 费马小定理 x^p mod p = x mod p or x^(p-1) mod p = 1 (if p does not divide x
初等数论 素数定义 设整数 \(p\ne 0,\pm 1\) 。如果 \(p\) 除了平凡约数以外没有其他约数,那么称 \(p\) 为素
我有以下数字数组: var array = [5,9,12,19,23,24,31,44,49,62]; 我试图找出每一个是偶数和合数,奇数和合数,还是奇数和素数。我首先尝试找到偶数和合数: for
import java.util.Scanner; public class array1 { public static void main(String [] args){
我是一名优秀的程序员,十分优秀!