본문 바로가기

PS/백준

[BOJ] 백준 4948 베르트랑 공준 (Swift)

반응형

문제

https://www.acmicpc.net/problem/4948

 

4948번: 베르트랑 공준

베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼

www.acmicpc.net

풀이

n보다 크고 2 * n 보다 작거나 같은 소수의 개수를 출력하는 문제입니다.

에라토스테네스의 체 알고리즘을 사용하여 소수들을 구할 수 있습니다.

n최대 123,456 이므로,
에라토스테네스의 체 알고리즘을 사용하여 123,456 * 2 만큼의 소수들을 한 번에 구해줍시다.

그 이후, n + 1 부터 2 * n 까지의 소수들의 개수를 출력해주면 됩니다.
고차함수 filter를 사용해서, 소수인 것들의 개수만 세도록 구현하였습니다.

소스코드

후기

소수판별 알고리즘에 대해 알고있다면 쉽게 풀이할 수 있습니다.
에라토스테네스의 체 알고리즘을 사용하는것이 한 번에 소수들을 구하기 때문에, 가장 효율적이라고 생각합니다.

반응형