What I Learned/Algorithm Practice
[백준 - python] 2581번: 소수
Interrobang
2022. 9. 25. 15:47
<문제 링크>
2581번: 소수
M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.
www.acmicpc.net
<문제 풀이>
prime_num = [2]
for i in range(3, 10000):
for j in range(2, int(i**0.5)+1):
if i % j == 0:
break
else:
prime_num.append(i)
M = int(input())
N = int(input())
num_list = []
for i in range(M, N+1):
if i in prime_num:
num_list.append(i)
if len(num_list) == 0:
print(-1)
else:
print(sum(num_list))
print(num_list[0])
*key point: 소수의 리스트를 미리 만들어둔 뒤, 주어진 범위의 새로운 소수 리스트를 만들어 리스트의 합과 최소값(첫번째 요소)을 찾는다.