4 回答

TA貢獻1817條經驗 獲得超14個贊
對于這個級別的作業來說,這可能是一個太高級的答案,但從技術上講,它遵循規則(使用 Array.forEach)并且有效。
primes()
基于先前的素數生成新的素數。所以不會測試所有整數的提醒,從而更有效。為了保持簡短,也有幾種箭頭函數的用途。如果您確實使用這個答案,請嘗試閱讀相關文檔并了解:
迭代器和生成器
箭頭函數表達式
為了...的
模板文字
認真地,試著一步一步地思考。這就是你學習任何東西的方式。
function* primes() {
? const previous = [];
? for (let i = 2; true; i++) {
? ? let isPrime = true;
? ? for (let p of previous) {
? ? ? if (i % p === 0) {
? ? ? ? isPrime = false;
? ? ? ? break;
? ? ? }
? ? }
? ? if (isPrime) {
? ? ? previous.push(i);
? ? ? yield i;
? ? }
? }
}
function* takeUntil(cb, iter) {
? for (let val of iter) {
? ? if (cb(val)) {
? ? ? return;
? ? }
? ? yield val;
? }
}
function showArrayIn(arr, container) {
? arr.forEach(p => container.innerHTML += `${p},<br/>`); // technically, we used Array.forEach.
}
showArrayIn(
? // get the prime number array declarativly?
? Array.from(takeUntil(n => n >= 50, primes())),
? // show in the container specified
? document.getElementById("results")
);
Primes:
<div id="results"></div>

TA貢獻1998條經驗 獲得超6個贊
考慮以下示例。
function isPrime(num) {
if (num === 1) {
return false;
} else if (num === 2) {
return true;
} else {
for (var x = 2; x < num; x++) {
if (num % x === 0) {
return false;
}
}
return true;
}
}
function shown(n) {
var list = [];
for (var i = 1; i <= n; i++) {
list.push(i);
}
list.slice().reverse().forEach(function(n, k, o) {
if (!isPrime(n)) {
list.splice(o.length - 1 - k, 1);
}
});
document.getElementById("show").innerHTML = list;
}
shown(50);
Prime: <p id="show"></p>

TA貢獻1788條經驗 獲得超4個贊
function primeFactorsTo(max)
{
var store = [], i, j, primes = [];
for (i = 2; i <= max; ++i)
{
if (!store [i])
{
primes.push(i);
for (j = i << 1; j <= max; j += i)
{
store[j] = true;
}
}
}
return primes;
}
console.log(primeFactorsTo(5));
console.log(primeFactorsTo(15));

TA貢獻1993條經驗 獲得超6個贊
我認為這是我應得的正確答案..這是代碼愛好者的簡短而激進的
function primes(limit)
{
var prime=[], i=1;
while (++i < limit+1) prime.reduce((a,c)=>(i%c)*a,1) && prime.push(i);
prime.unshift(2);
return prime;
}
[50].forEach(n=>document.getElementById('foreach').innerHTML=(`${primes(n)}`));
- 4 回答
- 0 關注
- 173 瀏覽
添加回答
舉報