let arr = [];
for (let i = 0; i < 10001; i++) {
arr[i] = i;
}
for (let z = 2, i = 3, y = 5, x = 7, e = 11, q = 0; q < 10001; z += 2, i += 3, y += 5, x += 7, e += 11, q++) {
arr[z] = 0;
arr[i] = 0;
arr[y] = 0;
arr[x] = 0;
arr[e] = 0;
}
for (let i = 1; i < 1000; i++) {
document.write(arr[i] + " " + i + "<br/>")
}
在循环中 i 的左侧
for(let i = 1; i<1000; i++) {
document.write(arr[i] + " " + i + "<br/>")
}
要么可以显示0,然后是合数(按照我的想法),要么是i本身,然后是素数。
到目前为止,手还没有伸手检查是否到处都是零是素数(使用不会产生 100% 失火的更简单的算法)。
一般来说,请原谅我不了解数论,也就是说,我无法亲自从数学上证明它只显示素数。但我每天都希望编程不仅仅针对那些懂数学的人(一些编程领域)
此代码不是Eratosthenes 祖父筛子的有效实现。
当筛子工作时,所有已经找到的素数的倍数都被标记出来。都找到了。在这里,由于某种原因,只选择了前五个。很容易看出,数字 169、221 或 289 将被标记为素数。你无法继续
我找到了下面的代码 -在这里,数量不同,您的代码可以被认为是 Eratosthenes 筛子的私有实现:)
“更正”您的代码,最多 121,因为您最多只能工作 11 * 11