【JavaScript】2〜nまでの素数を全て表示するには?
タイトル通り、2から任意の数(n)までの間にある素数を全て表示する関数を作ったので公開。
といっても1つの関数で実現したわけではないですが・・・
let n = 0; function testPrime(n) { // nが素数ならコンソールに表示 if (n === 1) { return false; } else if (n === 2) { console.log(n); } else { for (let x = 2; x < n; x++) { if (n % x === 0) { return false; } } console.log(n); } } function doTestPrime() { let i = 0; let uptoNumbers = []; // 空の配列を作る n = prompt("数を入力して下さい。"); while (n > 1) { // n, n-1, n-2...というふうに全ての数を配列に加える uptoNumbers.push(n); n--; } let arrayLength = uptoNumbers.length; while (i < arrayLength) { testPrime(uptoNumbers[i]); // 配列の要素全てに対して素数かどうか確認する i++; } } doTestPrime();
多分もっと簡単にやる方法があるはずだけど、とりあえず数時間悩んで作ったので、
しまっておくのももったいない!と思い公開。