이 문제는 시작값과 종료값을 입력한 후에 그 사이에 있는 소수들의 합과 최소값을 출력하는 문제이다.
저번 문제에서는 소수를 구하는 문제였는데 소수가 되는 조건은 1보다 큰수 이면서 자기 자신보다 작은 수로 나누었을 때 나머지가 0이 되지 않는 수를 소수라고 정의하였다.
총 2번의 시도 끝에 문제를 맞췄당
sum = 0
for i in prime_num:
sum += i
처음에는 소수를 구해서 리스트에 넣은 다음 따로 for문을 사용해서 하나하나 인덱스에 접근해서 더해줘서 그런지 시간초과 에러가 발생했다.
import sys
input = sys.stdin.readline
start = int(input())
end = int(input())
prime_num = []
for i in range(start, end+1):
error = 0
if i > 1:
for j in range(2, i+1):
if i % j == 0:
error += 1
if error == 1:
prime_num.append(i)
# print(prime_num)
if len(prime_num) == 0:
print(-1)
else:
print(sum(prime_num))
print(min(prime_num))
결국 for문에서 소수인지 판별을 해서 소수가 맞다면 prime_num이라는 리스트에 값을 추가해주고 마지막 if 조건문을 통해서 리스트 길이가 0이면 -1을 출력하고 리스트가 안비워져 있다면 소수들의 총합과 그 중에서 최소값을 출력해주도록 하였다.
'백준 문제풀이' 카테고리의 다른 글
[백준 2108번 문제] 통계학 (0) | 2022.08.07 |
---|---|
[백준 11653번 문제] 소인수분해 (0) | 2022.08.03 |
[백준 1978번 문제] 소수 찾기 (0) | 2022.07.29 |
[백준 10989번 문제] 수 정렬하기 3 (0) | 2022.07.29 |
[백준 10815번 문제] 숫자카드 (0) | 2022.05.20 |