본문 바로가기
IT/알고리즘

1일 N알고리즘 - #21

by Sungjun_ 2020. 5. 21.

문제

https://www.acmicpc.net/problem/2581

 

2581번: 소수

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

www.acmicpc.net

문제는 위 사이트를 참고해주세요.

 


풀이

M = int(input())
N = int(input())
prime = []
for i in range(M, N+1):
    if i == 2:
        prime.append(i)
    elif i % 2 != 0:
        for x in range(2, i+1):
            if x < i and i % x == 0:
                break
            elif i % x == 0:
                prime.append(i)
if len(prime) != 0:
    print(sum(prime))
    print(min(prime))
else:
    print(-1)

 

코드는 이 전글과 별 차이가 없습니다.

다른 점은 소수로 판별된 수를 배열에 넣은 것이고

마지막에 배열에 들어간 값이 있을 때만 총합과 최솟값을 출력하게 했고

값이 없으면 -1을 출력하게 했습니다.

 


결과

결과 화면

'IT > 알고리즘' 카테고리의 다른 글

1일 N알고리즘 - #23  (0) 2020.05.22
1일 N알고리즘 - #22  (0) 2020.05.22
1일 N알고리즘 - #20  (0) 2020.05.21
1일 N알고리즘 - # 19  (0) 2020.05.20
1일 N알고리즘 - #18  (0) 2020.05.20

댓글