https://www.acmicpc.net/problem/4948
실패 이유
: 시간 초과
prime_list = []
for num in range(2, 2 * 123456 + 1): # 문제에서 주어진 범위 내의 소수들을 모두 구한다.
prime_check = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
prime_check = False
break
if prime_check:
prime_list.append(num)
while True:
N = int(input())
if N == 0:
break
cnt = 0
for prime_number in prime_list: # 입력한 범위 내에 소수가 있는지 체크한다.
if N < prime_number <= 2 * N:
cnt += 1
print(cnt)
범위 입력마다 소수 개수를 체크하면 시간초과가 발생한다
- 문제에서 주어진 범위 내의 소수들을 미리 모두 구해 prime_list 에 넣는다.
- 키보드 입력을 통해 범위를 입력하면, prime_list 를 탐색하여 범위내의 소수 개수를 센다.