코딩일지/python 백준 알고리즘

python 백준 알고리즘 2581번: 소수

야언 2022. 9. 15. 15:20

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

 

2581번: 소수

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

www.acmicpc.net

1978번 문제의 소수 찾기 매커니즘을 그대로 가져와서 적용, 리스트 안에 append 하는식으로 소수 리스트 작성.

소수 리스트에 하나라도 있다면 sum(소수리스트), min(소수리스트) 로 합과 최솟값 출력

없다면(else) -1 출력

 

 

내 제출

num1 = int(input())
num2 = int(input())
cnt = []

for num in range(num1, num2 + 1):  # num1부터 num2까지
    error = 0
    if num > 1:
        for i in range(2, num):  # 2부터 num-1까지
            if num % i == 0:
                error += 1
                break  # 2부터 num-1까지 중에 나눈 몫이 0이 있다면 error가 증가하고 for문을 끝냄
        if error == 0:
            cnt.append(num)  # error가 없으면 소수 리스트에 추가

if len(cnt) > 0:  # 소수가 하나라도 있다면
    print(sum(cnt))  # 소수의 합 출력
    print(min(cnt))  # 최솟값 출력
else:
    print(-1)  # 없으면 -1 출력