์ƒˆ์†Œ์‹

๐Ÿงฎ ์•Œ๊ณ ๋ฆฌ์ฆ˜/-- ๋ฐฑ์ค€ (BOJ) - Python

๋ฐฑ์ค€ (boj) ํŒŒ์ด์ฌ - 2581๋ฒˆ : ์†Œ์ˆ˜

  • -

๋ฌธ์ œ ๋งํฌ : www.acmicpc.net/problem/2581

 

2581๋ฒˆ: ์†Œ์ˆ˜

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

www.acmicpc.net

 

 

์†Œ์ˆ˜์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋Š” ์™ ๋งŒํ•˜๋ฉด ์ „๋ถ€ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ํŽธํ•œ๊ฒƒ ๊ฐ™๋‹ค.

์ผ๋‹จ, ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์—์„œ ์ฃผ์–ด์ง„ ๋ฒ”์œ„๋งŒํผ ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•ด๋†“๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฌธ์ œ์˜ ์กฐ๊ฑด์— ๋งž

๊ฒŒ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋.

infinitt.tistory.com/232

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ (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))
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.