Coding Test/baekjoon
[백준 4948] 베르트랑 공준 - python (solved.ac - 실버 2)
조용장
2022. 1. 15. 11:46
https://www.acmicpc.net/problem/4948
4948번: 베르트랑 공준
베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼
www.acmicpc.net
풀이
문제를 보았을때 알수있는 힌트
소수!-> 소수 문제는 에라토스테네스의 체 문제라는 것을 인지해두자
그냥 for문으로 풀면 시간초과가 나오니 에라토스테네스의 체로 소수를 찾고 문제를 풀면 쉽게 풀 수 잇는 문제이다.
import sys
input = sys.stdin.readline
while True:
n = int(input())
if n==0: # 종료 시키기
break
n_list=[False,False]+[True]*(2*n)
result=[1]
for i in range(2,(2*n)+1):
if n_list[i]:
result.append(i)
for j in range(2*i,(2*n)+1,i):
n_list[j]=False
filteredList = [x for x in result if x>n]
# print(filteredList)
print(len(filteredList))
https://github.com/dydwkd486/coding_test/blob/main/baekjoon/baekjoon4948.py