개발 연습장/백준 문제풀이

[파이썬, Python] 백준 2581: 소수

LooanCheong 2022. 12. 23. 21:23
반응형

문제

https://www.acmicpc.net/problem/2581

 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net

코드

m = int(input())
n = int(input())
num_list = []

for i in range(m,n+1):
    cnt = 0
    if(i==1):
        continue
    for j in range(2, i+1):
        if(i%j == 0):
            cnt += 1
    if cnt == 1:
        num_list.append(i)
if len(num_list) == 0:
    print(-1)
else:
    print(sum(num_list))
    print(min(num_list))

설명

우선 각 수를 입력받고, 소수를 넣어줄 리스트를 만든다.

m부터 n까지의 수 중에, 약수의 개수가 1과 자기 자신 뿐인 수를 소수 리스트에 넣어준다.

만약 소수 리스트가 0개라면 -1을 출력하고,
그렇지 않다면 sum값과 최소값을 각각 출력해 준다.

반응형