본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 2581번 소수 문제

by 모두의 케빈 2023. 4. 15.

■ 2581번 소수 문제

 

출처: 백준 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))

댓글