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을 출력한다.
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[백준][9단계 약수,배수와 소수] 11653번 /소인수분해 (파이썬/Python) (0) | 2025.04.11 |
---|---|
[백준][9단계 약수,배수와 소수] 1978번 /소수 찾기 (파이썬/Python) (0) | 2025.04.09 |
[백준][9단계 약수,배수와 소수] 9506번 /약수들의 합 (파이썬/Python) (0) | 2025.04.08 |
[백준][9단계 약수,배수와 소수] 2501번 /약수 구하기 (파이썬/Python) (0) | 2025.04.05 |
[백준][9단계 약수,배수와 소수] 5086번 /배수와 약수 (파이썬/Python) (0) | 2025.04.05 |