BOJ/Python

백준 2581번 소수 파이썬

띵지니어 2022. 3. 6. 19:05

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

 

2581번: 소수

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

www.acmicpc.net

 

내 답안

def is_prime(n):
    if n == 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True


M, N = int(input())
N = int(input())
lst = []
for i in range(M, N + 1):
    if is_prime(i):
        lst.append(i)

if len(lst) == 0:
    print(-1)
else:
    print(sum(lst))
    print(min(lst))

 

is_prime 함수를 잘 구현했다면 문제없이 풀 수 있다.