코딩테스트/백준
백준 [2581] - 소수
문제
작성한 코드
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 |
댓글