๋ฐฑ์ค (boj) ํ์ด์ฌ - 2581๋ฒ : ์์
๋ฌธ์ ๋งํฌ : www.acmicpc.net/problem/2581
2581๋ฒ: ์์
M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์์ธ ๊ฒ์ ๋ชจ๋ ์ฐพ์ ์ฒซ์งธ ์ค์ ๊ทธ ํฉ์, ๋์งธ ์ค์ ๊ทธ ์ค ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค. ๋จ, M์ด์ N์ดํ์ ์์ฐ์ ์ค ์์๊ฐ ์์ ๊ฒฝ์ฐ๋ ์ฒซ์งธ ์ค์ -1์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
์์์ ๊ด๋ จ๋ ๋ฌธ์ ๋ ์ ๋งํ๋ฉด ์ ๋ถ ์๋ผํ ์คํ ๋ค์ค๋ฅผ ์ฌ์ฉํ๋๊ฒ ํธํ๊ฒ ๊ฐ๋ค.
์ผ๋จ, ํ ์คํธ์ผ์ด์ค์์ ์ฃผ์ด์ง ๋ฒ์๋งํผ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ๊ตฌํด๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง
๊ฒ ์ถ๋ ฅํด์ฃผ๋ฉด ๋.
์๊ณ ๋ฆฌ์ฆ (1) - ์ํ : ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ , ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (๋๋จธ์ง ์ฐ์ฐ, ์ต๋ ๊ณต์ฝ์, ์ต์๏ฟฝ๏ฟฝ
์ํ๊ณผ ๊ด๋ จํ ๊ธฐ์ด๋ฌธ์ ์๋ ํฌ๊ฒ 3๊ฐ์ง ๋ถ๋ฅ๋ก ๋๋์ด์ง๋ค. ๋๋จธ์ง ์ฐ์ฐ ์ต๋ ๊ณต์ฝ์, ์ต์ ๊ณต๋ฐฐ์ ์์ (prime number) 1. ๋๋จธ์ง ์ฐ์ฐ (Modular Arithmetic) Python ์ผ๋ก ๋ฌธ์ ๋ฅผ ํผ๋ค๋ฉด ์๊ด์๊ฒ ์ง๋ง, C++ ,
infinitt.tistory.com
ํ์ด์ฌ ์ฝ๋ (Python)
M = int(input())
N = int(input())
check = [False for i in range(N+1)]
for i in range(2, int(N**0.6)):
if check[i] == False:
for j in range(2 * i, N + 1, i):
check[j] = True
prime_number = []
for i in range(M, N + 1):
if i >= 2:
if check[i] == False:
prime_number.append(i)
if len(prime_number) == 0:
print(-1)
else :
print(sum(prime_number))
print(min(prime_number))