개발 공부/알고리즘 문제풀이

[백준] 2581. 소수

5묘 2022. 7. 31. 22:43
 

2581번: 소수

M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다.  단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다.

www.acmicpc.net


이것도 2부터 num까지 num을 나누어 소수인지 여부를 판별했다(매우 비효율적인 방법이다. 테스트케이스가 많은 예시일 때 시간초과 나기 쉽다.)
소수의 합과 소수 중 최솟값은 파이썬 내장함수(sum()함수, min()함수)를 이용했다.
시간은 588ms, 메모리는 30840KB가 나왔다.

# 2581 소수
M = int(input())
N = int(input())
arr = []

for num in range(M, N+1):
    flag = False
    if num == 1:
        continue
    for i in range(2, num):
        if num % i == 0:
            flag = True
            break

    if flag is True:
        continue
    else:
        arr.append(num)

if len(arr) != 0:
    print(sum(arr))
    print(min(arr))
else:
    print(-1)