본문 바로가기
백준알고리즘/기본 수학2

(Python/🥈5)백준 알고리즘 2581번: 소수

by windy7271 2022. 5. 16.
728x90
반응형

문제 출처:https://www.acmicpc.net/problem/2581

 

2581번: 소수

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

www.acmicpc.net

풀이:


M = int(input())
N = int(input())

sum = 0
list = list()
for i in range(M,N+1):
    if i != 1:
        for k in range(2,i):
            if i % k ==0:
                break
        else:
            sum += i
            list.append(i)
print(sum,min(list))

처음에 이렇게 했더니 런타임 에러가 났다.

확인해보니 -1 나오는게 없다.

 

M = int(input())
N = int(input())

sum = 0
list = list()                   # M 과 N 차이에서 나오는 소수들 젛기위한 리스트 생성
for i in range(M,N+1):      
    if i != 1:
        for k in range(2,i):    #소수가 아니라면 
            if i % k ==0:
                break           #브레이크로 포문 탈출
        else:                   #소수라면
            sum += i            #sum 에 더해서 다시 sum으로 만들어주고   
            list.append(i)      #list에 그 숫자를 추가 해준다.
if len(list) == 0:              #만약 list에 길이가 0 즉 소수가 없을떄
    print('-1')                 # -1 을 출력해주고
else:
    print(sum,min(list))        # 소수가 있으면 소수들의 합과 소수의 갯수 출력

 

반응형

댓글