백준 4948 베르트랑 공준

Hyun·2022년 9월 6일
0

코딩테스트

목록 보기
2/66

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 를 탐색하여 범위내의 소수 개수를 센다.

0개의 댓글

관련 채용 정보