Lumpy Space Princess - Adventure Time
코딩테스트/백준

백준 [2581] - 소수

yaebb_82 2022. 8. 27.

 

문제

 

 

 

작성한 코드

import sys

input = sys.stdin.readline

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

sosu = list()

for i in range(M, N+1):
    counts = 0
    if i >1:
        for j in range(2, i):
            if (i%j) == 0:
                counts += 1
        if counts == 0:
            sosu.append(i)

if len(sosu) > 0:
    print(sum(sosu))
    print(min(sosu))
else:
    print(-1)

- sys.stdin.readline을 input에 할당하여 사용한다.

- input()으로 문자를 입력받아 int형으로 형변환하여 M과 N에 저장한다.

- 나중에 소수들을 저장하기 위해 sosu를 list로 선언한다.

- for i in range(M, N+1): M부터 N까지 소수인지 확인하기 위해 반복문 for문을 돌린다.

- 소수가 아닌 것의 개수를 새기 위해 counts를 0으로 선언한다.

- for j in range(2, i): 2부터 자기자신 전까지 반복문 for문을 돌리면서 확인한다.

- if (i%j) == 0: 만약 i를 j로 나눴을 때 나머지가 0일 때, counts의 개수를 1 증가시킨다.

- if counts == 0: 만약 counts가 0이라면 소수라는 뜻이기 때문에, list인 sosu에 append()로 i를 추가한다.

- if len(sosu) > 0: len()로 sosu의 길이를 구해서 0보다 크다면, sosu의 합을 sum()을 통해 구한 뒤 print()로 출력하고, sosu의 최소값을 min()으로 구한 뒤 print()로 출력한다.

- else: 만약 길이가 0보다 작거나 같다면, print()로 -1을 출력한다.

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [1931] - 회의실 배정  (0) 2023.02.02
백준 [11047] - 동전 0  (0) 2023.02.02
백준 [1978] - 소수 찾기  (0) 2022.08.27
백준 [10757] - 큰 수 A+B  (0) 2022.08.25
백준 [2839] - 설탕 배달  (0) 2022.08.25

댓글