코딩일지/python 백준 알고리즘
python 백준 알고리즘 2581번: 소수
야언
2022. 9. 15. 15:20
https://www.acmicpc.net/problem/2581
2581번: 소수
M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.
www.acmicpc.net
1978번 문제의 소수 찾기 매커니즘을 그대로 가져와서 적용, 리스트 안에 append 하는식으로 소수 리스트 작성.
소수 리스트에 하나라도 있다면 sum(소수리스트), min(소수리스트) 로 합과 최솟값 출력
없다면(else) -1 출력
내 제출
num1 = int(input())
num2 = int(input())
cnt = []
for num in range(num1, num2 + 1): # num1부터 num2까지
error = 0
if num > 1:
for i in range(2, num): # 2부터 num-1까지
if num % i == 0:
error += 1
break # 2부터 num-1까지 중에 나눈 몫이 0이 있다면 error가 증가하고 for문을 끝냄
if error == 0:
cnt.append(num) # error가 없으면 소수 리스트에 추가
if len(cnt) > 0: # 소수가 하나라도 있다면
print(sum(cnt)) # 소수의 합 출력
print(min(cnt)) # 최솟값 출력
else:
print(-1) # 없으면 -1 출력