문제
알고리즘
- 반복문을 통해 가능한 모든 수가 소수인지 확인한다.
- 소수인지 확인했다면 반복문을 통해 케이스를 입력받는다.
- 입력받은 수가 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
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 8911번(파이썬): 거북이 (0) | 2022.02.16 |
---|---|
[baekjoon] 백준 6603번(파이썬): 로또 (0) | 2022.02.15 |
[baekjoon] 백준 4307번(파이썬): 개미 (0) | 2022.02.13 |
[baekjoon] 백준 2529번(파이썬): 부등호 (0) | 2022.02.12 |
[baekjoon] 백준 2304번(파이썬): 창고 다각형 (0) | 2022.02.12 |