[300]1929号小数点を救う



1929号需要小数。


質問する


MまたはN以上のすべての小数を出力するプログラムを作成してください.

入力


最初の行では、自然数MとNはスペースを隔てて与えられる.(1≦M≦N≦1000000)M以上N以下の小数は1つ以上の入力のみを与える.

しゅつりょく


1行1個、小数をインクリメント順に出力します.

コピー例入力1

3 16

コピー例出力1

3
5
7
11
13

コード#コード#

//---- 세팅 ----//
const fs = require('fs');
const stdin = (
  process.platform === 'linux'
    ? fs.readFileSync('/dev/stdin').toString()
    : `\
3 16
`
).split('\n');

const input = (() => {
  let line = 0;
  return () => stdin[line++];
})();

//---- 풀이 -----//

const [start, end] = input().split(' ').map(Number);

const numberArr = [...Array(end - start + 1)].map((v, i) => i + start);

const isPrime = n => {
  if (n <= 1) return false;
  for (let i = 2; i <= n / i; i++) {
    if (n % i === 0) return false;
  }
  return true;
};

const primeArr = numberArr.filter(n => isPrime(n));

console.log(primeArr.join('\n'));

に答える


小数:1と自分だけの小数
繰り返し文の範囲

  • nの約数はnの半分を超えてはならない.i <= n / 2
  • i * i <= ni <= Math.sqrt(n)(より高速)
  • 小数をチェックできるかどうかについては、その値の平方根に基づいて、その値の平方根は対称であるため、平方根より小さい値だけをチェックすると、チェックするデータをチェックする必要のない平方根以下に減らすことができます.
    出典:https://www.it-note.kr/308[IT開発者コメント]