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');
}