gpt4 book ai didi

javascript - 需要在 JavaScript 中生成素数

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:31 25 4
gpt4 key购买 nike

我正在编写一个 JavaScript 来生成从 2 到 100 的素数。但是它不起作用并且无法弄清楚。

你能帮帮我吗?

var array = new Array(100);

for (var i=2 ; i<=array.length-1; i++) {
if((i%2===0) || (i%3===0))
continue;
document.writeln(i+",");
}

我修改了我的答案,但现在它不打印 2 & 3;我怎样才能包括 2 和 3...
结果是:
5, 7, 11, 13, 17, 19, 23, 25, 29, 31, 35, 37, 41, 43, 47, 49, 53, 55, 59, 61, 65, 67, 71, 73, 77, 79, 83, 85, 89, 91, 95, 97

最佳答案

function isPrime(num) {
for ( var i = 2; i < num; i++ ) {
if ( num % i === 0 ) {
return false;
}
}
return true;
}

function display(n) {
var arr = [2];
for ( var i = 3; i < n; i+=2 ) {
if ( isPrime(i) ) {
arr.push(i);
}
}
console.log(arr); // use arr result on your own
}

display(100);

注意:指定 n 中的参数展示函数并获得从 2 到 的素数n ...

查看 JSFiddle

更新:请注意,上面的脚本是正确的,我将离开它,尽管添加了相同的功能和一个功能:
function prime(n,flag) {
( typeof flag === "undefined" || flag === false ) ? flag = false : flag = true;

function isPrime(num) {
if ( num === 0 || num === 1 ) {
return false;
}
for ( var i = 2; i < num; i++ ) {
if ( num % i === 0 ) {
return false;
}
}
return true;
}

if ( flag ) {
var arr = [2];
for ( var i = 3; i <= n; i+=2 ) {
if ( isPrime(i) ) {
arr.push(i);
}
}
return arr;
} else {
return isPrime(n);
}
}

解释 : prime函数需要两个参数,第一个是必需的,第二个是可选的。如果只指定第一个参数,函数将返回 truefalse基于数属于或不属于素数。如果第二个参数指定为 true (或除 undefinedfalse 之外的任何其他类型)函数将返回 array来自 2 的素数至 n .例如:
console.log(prime(2)); // returns true ( 2 is prime )
console.log(prime(8)); // returns false ( 8 isn't prime )

console.log(prime(100,true)); // returns [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

关于javascript - 需要在 JavaScript 中生成素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com