[백준/BOJ] 4948번 베르트랑 공준 (Python)
⌛ 4948번 베르트랑 공준
📌 문제
📝 코드
처음에는 아래의 코드처럼 각각의 경우마다 소수의 개수를 구해줬더니 시간 초과가 발생하였다.
while True:
n = int(input())
if n == 0:
break
prime_list = []
for num in range(2, 2 * n + 1):
check = True
for prime in prime_list:
if prime * prime > num:
break
if num % prime == 0:
check = False
break
if check == True:
prime_list.append(num)
result = 0
for prime in prime_list:
if prime > n and prime <= 2 * n:
result += 1
print(result)
그래서 먼저 주어진 제한 범위 안의 소수들을 모두 구해 prime_list에 넣고 나서 입력받은 n 값에 따라 해당 범위 안의 소수의 개수를 count 하는 방식을 사용하였다.
prime_list = []
for num in range(2, 123456 * 2):
check = True
for prime in prime_list:
if prime * prime > num:
break
if num % prime == 0:
check = False
break
if check == True:
prime_list.append(num)
while True:
n = int(input())
if n == 0:
break
count = 0
for prime in prime_list:
if prime > n and prime <= 2 * n:
count += 1
print(count)
Author And Source
이 문제에 관하여([백준/BOJ] 4948번 베르트랑 공준 (Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nmkimsy22/백준BOJ-4948번-베르트랑-공준-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)