[python_파이썬_pass]백준_4948번_베르트랑 공준_풀이
2024. 5. 20. 21:59ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/KtmItpIeYu4?feature=shared
소수판별에 많은 시간을 소비하고 있다.
이번에 확실히 잡아야 겠다.
<첫번째 시도 : 맞았습니다._2492ms>
바로 에라토스테네스의체 알고리즘을 활용하고 기준은 리스트를 활용했다.
주의할 점은 문제의 조건에서 n보다 크고, 2n보다 작거나 같은 소수의 개수는 n < 소수 <= 2n이라는 점이다.
import sys
input = sys.stdin.readline
while True:
num = int(input())
if num == 0:
break
graph = [i for i in range(num * 2 + 1)]
cnt = 0
for i in range(2, int(2*num**0.5) + 1):
if graph[i] != 0:
for j in range(2*i, 2*num + 1, i):
graph[j] = 0
for i in range(max(2, num+1), 2*num + 1):
if graph[i]:
cnt += 1
print(cnt)
<다른사람 풀이 참고>
나랑 비슷하게 풀긴 했는데 참고해보자.
시간적으로 엄청 빠르게 나온다. 136ms
import sys
input = sys.stdin.readline
def Prime():
for i in range(2, 123456*2 + 1):
if graph[i]:
for j in range(i*2, 123456*2 + 1, i):
graph[j] = 0
graph = [1] * (123456*2 + 1)
graph[:2] = [0, 0]
Prime()
while True:
num = int(input())
if num == 0:
break
print(sum(graph[num+1:2*num + 1]))
728x90
반응형
'코드리뷰' 카테고리의 다른 글
★[python_파이썬_복습 또 복습]백준_13909번_창문 닫기_풀이 (0) | 2024.05.21 |
---|---|
★[python_파이썬_소수의 시간고려]백준_17103번_골드바흐 파티션_풀이 (0) | 2024.05.21 |
★[python_파이썬_pass_소수관련 알고리즘 종합 복습]백준_1929번_소수 구하기_풀이 (0) | 2024.05.20 |
★[python_파이썬_소인수]프로그래머스_LV0_유한소수 판별하기_풀이 (0) | 2024.05.20 |
[python_파이썬_pass_에라토스테네스의체 알고리즘]백준_4134번_다음 소수_풀이 (0) | 2024.05.19 |