Baekjoon/단계별로 풀어보기

[백준][9단계 약수,배수와 소수] 2581번 /소수 (파이썬/Python)

junslee 2025. 4. 10. 10:15

1. 문제 설명

2. 코드

import math

M = int(input())
N = int(input())
decimal = []
for i in range(M,N+1):
    if i > 1:
        is_prime = True
        for j in range(2,int(i**0.5)+1):
            if i % j == 0:
                is_prime = False
                break
        if is_prime:
            decimal.append(i)
if decimal:
    print(sum(decimal))
    print(min(decimal))
else:
    print(-1)

3. 풀이 과정

제곱근 계산을 위해 math 모듈을 사용한다.

M을 정수로 입력받고, N을 정수로 입력받는다.

decimal을 빈 리스트로 받는다.

M부터 N까지의 숫자를 i로 반복한다.

1은 소수가 아니므로 i가 1보다 클 때만 고려한다.

소수 판별을 위해 is_prime을 True로 초기화시킨다.

2부터 i의 제곱근까지의 숫자를 j로 반복한다.

i를 j로 나눈 나머지가 0인 경우, 약수이면 is_prime을 False로 초기화시키고 break한다.

is_prime이 참이면 decimal에 i를 추가한다.

첫번째 for문을 빠져나왔을 때 decimal에 값이 있으면 sum()으로 합, min()으로 최솟값을 계산해 출력한다.

빈 리스트이면 -1을 출력한다.