■ 2581번 소수 문제
■ 코드 풀이
우선 1개의 숫자에 대해 소수인지를 판단하는 is_it_sosu 함수를 선언합니다. 1은 소수가 아니고, 특정 숫자의 절반까지만 확인하면 소수인지 알 수 있으므로 이를 참고하여 range를 설정합니다. 숫자가 소수이면 True(1)를, 소수가 아니면 False(0)을 반환합니다.
M, N을 입력받습니다. for문을 돌면서 M이상 N이하 자연수 중 소수가 있으면 sum_of_sosu에 더합니다. first 변수는 최초 한 번만 실행됩니다. M부터 숫자가 커지므로, sum_of_sosu에 더해지는 최초의 소수가 곧 최솟값입니다.
def is_it_sosu(num):
sosu = True
for i in range(2, num//2+1):
if num % i == 0:
sosu = False
break
return sosu
M = int(input())
N = int(input())
sum_of_sosu = 0
first = False
for num in range(M,N+1):
if num == 1:
continue
if is_it_sosu(num):
sum_of_sosu += num
if first == False:
first = True
min_value = num
if sum_of_sosu == 0:
print(-1)
else:
print('{}\n{}'.format(sum_of_sosu,min_value))
'코딩 테스트 > Python_백준' 카테고리의 다른 글
[백준/Python] 27323번 직사각형 문제 (0) | 2023.04.17 |
---|---|
[백준/Python] 11653번 소인수분해 문제 (0) | 2023.04.16 |
[백준/Python] 1978번 소수 찾기 문제 (0) | 2023.04.14 |
[백준/Python] 9506번 약수들의 합 문제 (0) | 2023.04.13 |
[백준/Python] 5086번 배수와 약수 문제 (0) | 2023.04.12 |
댓글