[BJ / 1929] 소수 구하기

Lainlnya·2023년 4월 5일
0

BaekJoon

목록 보기
24/37

문제

M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.

출력

한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.

예시

풀이

약수를 구해서 약수가 2개 밖에 없다면, 즉 자기자신과 1밖에 존재하지 않는다면 소수라는 의미이기 때문에 약수 2개의 개수를 구하는 방식으로 풀이했다.

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = '';
rl.on('line', (line) => {
  input = line;
});

rl.on('close', () => {
  console.log(solution(input.split(' ').map((el) => parseInt(el))));
});

function solution(number) {
  let answer = [];
  for (let i = number[0]; i <= number[1]; i++) {
    let temp = [];
    for (let j = 1; j * j <= i; j++) {
      if (i % j === 0) {
        temp.push(j);
        if (i / j !== j) temp.push(i / j);
      }
    }
    if (temp.length === 2) answer.push(temp[1]);
    temp = [];
  }
  return answer.join('\n');
}
profile
Growing up

0개의 댓글