CodingTest/Baekjoon
[baekjoon] 백준 4948번(파이썬): 베르트랑 공준
JunJangE
2022. 2. 14. 00:46
문제
4948번: 베르트랑 공준
베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼
www.acmicpc.net
알고리즘
- 반복문을 통해 가능한 모든 수가 소수인지 확인한다.
- 소수인지 확인했다면 반복문을 통해 케이스를 입력받는다.
- 입력받은 수가 0이라면 반복을 멈추고 아니라면 다음을 수행한다.
- 반복문을 통해 소수인 수가 케이스 구간에 있는지 확인한다.
- 케이스 구간에 있다면 카운트한다.
코드
import sys
# 소수인지 확인
def decimal(x):
if x == 1:
return False
for k in range(2, int(x**0.5)+1):
if x % k == 0:
return False
return True
# 가능한 모든 수가 소수인지 확인
decimal_nums = []
for i in range(2, 246912):
if decimal(i):
decimal_nums.append(i)
# 반복문을 통해 케이스를 확인
while True:
n = int(sys.stdin.readline())
cnt = 0
# 입력받은 수가 0이면 반복을 멈춤
if n == 0:
break
# 소수인 수를 반복하여 구간에 있는지 확인
for j in decimal_nums:
# 구간에 있다면 카운트
if n < j <= 2 * n:
cnt += 1
print(cnt)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com