Algorithm

[Python] ๋ฐฑ์ค€ 2581 - ์†Œ์ˆ˜

๐ŸฅญMango 2020. 9. 18. 00:56

๋ฌธ์ œ

์ž์—ฐ์ˆ˜ M๊ณผ N์ด ์ฃผ์–ด์งˆ ๋•Œ M์ด์ƒ N์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘ ์†Œ์ˆ˜์ธ ๊ฒƒ์„ ๋ชจ๋‘ ๊ณจ๋ผ ์ด๋“ค ์†Œ์ˆ˜์˜ ํ•ฉ๊ณผ ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด M=60, N=100์ธ ๊ฒฝ์šฐ 60์ด์ƒ 100์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘ ์†Œ์ˆ˜๋Š” 61, 67, 71, 73, 79, 83, 89, 97 ์ด 8๊ฐœ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ, ์ด๋“ค ์†Œ์ˆ˜์˜ ํ•ฉ์€ 620์ด๊ณ , ์ตœ์†Ÿ๊ฐ’์€ 61์ด ๋œ๋‹ค.

 

์ž…๋ ฅ

์ž…๋ ฅ์˜ ์ฒซ์งธ ์ค„์— M์ด, ๋‘˜์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค.

M๊ณผ N์€ 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ, M์€ N๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค.

 

์ถœ๋ ฅ

M์ด์ƒ N์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘ ์†Œ์ˆ˜์ธ ๊ฒƒ์„ ๋ชจ๋‘ ์ฐพ์•„ ์ฒซ์งธ ์ค„์— ๊ทธ ํ•ฉ์„, ๋‘˜์งธ ์ค„์— ๊ทธ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

๋‹จ, M์ด์ƒ N์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ค‘ ์†Œ์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ๋Š” ์ฒซ์งธ ์ค„์— -1์„ ์ถœ๋ ฅํ•œ๋‹ค.


์ •๋‹ต

import math
def is_prime(num):
    if num <= 1:
        return False
    for i in range(2, int(math.sqrt(num)+1)):
        if num % i == 0:
            return False
    return True

n = int(input())
m = int(input())
a = []
for x in range(n, m+1):
    if is_prime(x):
        a.append(x)

a.sort()
if sum(a) == 0:
    print('-1')
else:
    print(sum(a))
    print(a[0])

์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ์•ˆ์— ์†Œ์ˆ˜๋“ค์„ ์ง‘์–ด๋„ฃ์–ด sort๋ฅผ ํ•ด sum๊ณผ ์ฒซ๋ฒˆ์งธ ๊ฐ’(์ตœ์†Ÿ๊ฐ’)์„ ๊ตฌํ•œ๋‹ค.

๋งŒ์•ฝ sum์ด 0์ผ ๊ฒฝ์šฐ ์†Œ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋‹ˆ๊น -1์„ ์ถœ๋ ฅํ•ด์ค€๋‹ค.