반응형
문제
https://www.acmicpc.net/problem/4948
4948번: 베르트랑 공준
베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼
www.acmicpc.net
코드
prime = []
for i in range(2, 246913):
cnt = 0
for j in range(2, int(i**0.5)+1):
if i % j == 0:
cnt += 1
break
if cnt == 0:
prime.append(i)
while True:
n = int(input())
primecnt = 0
if n == 0:
break
for i in prime:
if n < i <= 2*n:
primecnt += 1
print(primecnt)
설명
계속 시간초과에 걸려서 고민했던 문제였다.
핵심은 범위가 주어져 있으므로 미리 소수를 계산해놓은 리스트를 만드는 것이었다.
미리 반복문을 한 번 돌려 리스트를 만들어놓고,
아래의 조건문에선 소수의 유무만을 체크하면 되는 문제였다.
문제 자체는 이전의 문제들에서 볼 수 있는 유형이었으나 시간 초과를 조금 생각하게 되는 문제였다
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 2566: 최댓값 (0) | 2022.12.28 |
---|---|
[파이썬, Python] 백준 2738: 행렬 덧셈 (0) | 2022.12.27 |
[파이썬, Python] 백준 1929: 소수 구하기 (0) | 2022.12.25 |
[파이썬, Python] 백준 11653: 소인수분해 (0) | 2022.12.24 |
[파이썬, Python] 백준 2581: 소수 (0) | 2022.12.23 |