[백준] 2581번

코린이·2022년 4월 25일
0

백준

목록 보기
12/38

📢 2581번 문제

백준 문제 링크

🔎 풀이

사용언어 : python

  • list : 소수가 들어갈 리스트 , 소수가 없을 경우를 대비해 0을 넣어두었다.

  • 소수는 1보다 큰 자연수 중 1과 자기자신 이외의 어떤 수로도 나누어지지 않는 성질을 가진 수이다.

  • M 이상 N이하의 자연수 중 소수인 것을 찾으려면 숫자 i를 2부터 i까지의 모든 수로 나눈 후
    나머지가 0이었을 경우가 자기 자신뿐인 경우 소수 이므로 count가 1인 경우 list에 추가를 해준다.

  • list에 소수는 작은 수부터 추가가 되므로 최솟값은 0이아닌 두번째 인덱스인 list[1]에 있다.

🔎 코드

import sys
M = int(sys.stdin.readline())
N = int(sys.stdin.readline())

list = [0] # 소수를 담을 리스트, 소수가 없을 경우를 대비해 0을 넣어둠.
for i in range(M, N+1):
    if i > 1:
        count = 0
        for z in range(2, i+1):
            if i % z == 0:
                count += 1
        if count == 1: # 소수인 경우 list에 추가
            list.append(i)

if len(list) > 1: 
    print(sum(list))
    print(list[1])
else:
    print(-1)
profile
초보 개발자

0개의 댓글