gpt4 book ai didi

javascript - 质数 JavaScript

转载 作者:可可西里 更新时间:2023-11-01 02:16:50 28 4
gpt4 key购买 nike

有人可以指导我获取素数吗?这是家庭作业,所以我不想要答案,但一些指示将不胜感激。这真的让我很烦:(

我想我很接近。但是我遇到的问题是数字 25 和 35。它们不是质数,但是这个函数正在返回它们

var getPrimeNumber = function(n) {
if(n === 1) return "";
else if(n == 2) return 2;
else if(n == 3) return 3;
else {
for(i=Math.floor(Math.sqrt(n)); i>=2; i--){
//console.log(i);//maybe another var in here?
if(n%i !==0 && n%2 !==0 && n%3 !== 0)
return n; // 25/Math.sqrt(25) will be equal to zero this is what gives me 25 !!!
}
}
};

最佳答案

基于 this page ,这将是一种确定数字是否为素数的方法:

function isPrime(number) {
let start = 2;
const limit = Math.sqrt(number);
while (start <= limit) {
if (number % start++ < 1) return false;
}
return number > 1;
}

node.js 中,确定 2 到 100.000 之间的素数大约需要 250 毫秒。

See also ...

[编辑八月。 2021] 一个更高效的函数。参见 this Stackblitz project

document.querySelector(`pre`).textContent = `Prime numbers < 100\n` +
[...Array(100)]
.map((v, i) => isPrime(i) ? i : 0)
.filter(v => v > 0)
.join(`\n`);

function isPrime(number) {
const checkPrime = (nr, limit) => {
for (let start = 3; start <= limit; start += 2) {
if (0 === nr % start) {
return false;
}
}

return nr > 1;
};

return number === 2 || number % 2 !== 0 && checkPrime(number, Math.sqrt(number));
}
<pre></pre>

关于javascript - 质数 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17389350/

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