[BOJ] 1929.์์๊ตฌํ๊ธฐ (Python)
by ๋๋ถ๋
1929๋ฒ: ์์ ๊ตฌํ๊ธฐ
์ฒซ์งธ ์ค์ ์์ฐ์ M๊ณผ N์ด ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 1,000,000) M์ด์ N์ดํ์ ์์๊ฐ ํ๋ ์ด์ ์๋ ์ ๋ ฅ๋ง ์ฃผ์ด์ง๋ค.
www.acmicpc.net
ํด๋น ๋ฌธ์ ๋ M ์ด์ N ์ดํ์ ์ ์ค ์์์ธ ๊ฒฝ์ฐ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ ๋๋ค.
์์ ๋ฌธ์ ๋ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
# ์์ ๊ตฌํ๊ธฐ
M, N = map(int, input().split())
check = [0] * (N + 1) # ์์ ํ์ธ์ ์ํ ์ฉ๋
for i in range(2, N + 1) : # ์๋ผํ ์คํ
๋ค์ค์ฒด์ ์ด์ฉ
if check[i] == 0 :
if i >= M :
print(i)
for j in range(i, N + 1, i) :
check[j] = 1
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ ๋ฌด์์ผ๊น์?
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ ์์๋ฅผ ํ๋ณํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ํน์ ์์์ ๋ฐฐ์๋ค์ ๊ณ์ฐ์ ํฌํจ๋์ง ์๋๋ก ํ๋ ์๋ฆฌ์ธ๋ฐ,
์ด๊ฒ์ด ๋ง์น ์ฒด์ ๊ฑธ๋ฌ์ง๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค.
๊ตฌํํ๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์์๋ฅผ ํ๋ณํ ๋ฒ์๋งํผ ๋ฐฐ์ด์ ์์ฑํ๊ณ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค. (์ ๋ ๊ฐ์ธ์ ์ผ๋ก 0 ์ด๊ธฐํ๋ฅผ ์ข์ํด์ ๐)
- 2๋ถํฐ ์์ํด์ ๋ฐฐ์์ ํด๋นํ๋ ์ซ์๋ค์ ์ง์ฐ๋ฉฐ ์งํํฉ๋๋ค.
- 2๋ถํฐ ์์ํ์ฌ ์ง์์ง์ง ์์ ์๋ค์ ๋ชจ๋ ์์์ด๋ฏ๋ก ์ถ๋ ฅํฉ๋๋ค.
์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๊ตฌํํ๊ธฐ
def find_prime_number(N) :
check = [0] * (N + 1)
result = []
for i in range(2, N + 1) :
if check[i] == 0 :
for j in range(i*2, N + 1, i) :
if check[j] == 0 :
check[j] = 1
for i in range(2, N + 1) :
if check[i] == 0 : result.append(i)
return result
if __name__=="__main__" :
N = 100
print(find_prime_number(N))
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 17140.์ด์ฐจ์๋ฐฐ์ด๊ณผ ์ฐ์ฐ (Python) (0) | 2021.04.21 |
---|---|
[BOJ] 14890.๊ฒฝ์ฌ๋ก (Python) (0) | 2021.04.20 |
[BOJ] 12110.2048(Easy) (0) | 2021.04.19 |
[BOJ] 13549.์จ๋ฐ๊ผญ์ง 3 (Python) (0) | 2021.04.18 |
[BOJ] 1918.ํ์ํ๊ธฐ์ (Python) (0) | 2021.04.17 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
๋๋ถ๋์ Devlog
๋๋ถ๋