<백준> 1929 소수 구하기

김지원·2021년 8월 12일
0

백준

목록 보기
1/9

소수 구하기

시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초256 MB113871318222253527.178%

문제

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

입력

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

출력

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

예제 입력 1

3 16

예제 출력 1

3
5
7
11
13

알고리즘 분류

  • 수학
  • 정수론
  • 소수 판정
  • 에라토스테네스의 체

풀이

const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split(' ');

const a = parseInt(input[0]);
const b = parseInt(input[1]);
let ret = '';

if(b <= 1)
    return;

let arr = new Array(b+1).fill(true);
arr[0] = false;
arr[1] = false;

for(let i = 2 ; i <= b ; i ++){
    if(arr[i]){
        for(let j = i * i ; j <= b ; j+=i )
            arr[j] = false;
    }
}

for(let i = a ; i <= b ; i ++){
    if(arr[i])
        ret += i + '\n'
}
console.log(ret.trim());
profile
지원

0개의 댓글

관련 채용 정보