[Python] ๋ฐฑ์ค 2581 - ์์
๋ฌธ์
์์ฐ์ 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์ ์ถ๋ ฅํด์ค๋ค.