에라토스테네스의 seive 써서 구했다. 모든 숫자를 최댓 범위의 제곱근 범위까지 돌며 그 배수를 False로 바꿔주는게 포인트. i는 False로 바꾸지 않는다(소수이기 때문) i+i부터 바꾼다.
import sys
input = sys.stdin.readline
def che():
nums = [True]*(N+1)
nums[0]=nums[1]=False
primes = []
for i in range(2,int(N**0.5)+1):
if nums[i]:
for j in range(i+i, N+1, i):
nums[j] = False
return [i for i in range(M,N+1) if nums[i]]
M = int(input())
N = int(input())
arr = che()
if arr:
print(sum(arr))
print(arr[0])
else:
print(-1)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 14923 미로탈출 (0) | 2021.08.29 |
---|---|
[백준][Python] 13913 숨바꼭질4 (0) | 2021.08.29 |
[백준][Python] 2564 경비원 (0) | 2021.08.29 |
[백준][Python] 2605 줄세우기 (0) | 2021.08.29 |
[백준][Python] 14696 딱지놀이 (0) | 2021.08.29 |