[๋ฐฑ์ค/python] 1929๋ฒ : ์์ ๊ตฌํ๊ธฐ
๋ฌธ์
M์ด์ N์ดํ์ ์์๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์์ฐ์ M๊ณผ N์ด ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. (1 ≤ M ≤ N ≤ 1,000,000) M์ด์ N์ดํ์ ์์๊ฐ ํ๋ ์ด์ ์๋ ์ ๋ ฅ๋ง ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
ํ ์ค์ ํ๋์ฉ, ์ฆ๊ฐํ๋ ์์๋๋ก ์์๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ต
M, N = map(int, input().split())
number = [True for i in range(N+1)]
for i in range(2, int(N**0.5)+1):
if number[i]:
for j in range(2*i, N+1, i):
number[j] = False
for index in range(M, N+1):
if number[index] and index!=1:
print(index)
์ ์ ํ์ด๋ณด์๋ ์ ํ ๋๋ฒ์ ๋ฌธ์ ์ ํ์์ด ์ ์ฌํ๋ค.
2021.03.09 - [๐์๊ณ ๋ฆฌ์ฆ/๋ฐฑ์ค] - [๋ฐฑ์ค/python] 4673๋ฒ : ์ ํ ๋๋ฒ
๋ฌธ์ ์์๋ M๋ถํฐ N๊น์ง์ ์ ์ค ์์๋ฅผ ๊ตฌํ์ง๋ง
๋ฐฐ์ด์ index๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ N+1๊น์ง์ True๊ฐ ๋ค์ด๊ฐ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
๐ฅ ์ฌ๊ธฐ์ N+1๊น์ง์ ๋ฐฐ์ด์ ๋ง๋๋ ์ด์ ๋ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด์ ์ฌ๊ธฐ์ ์์๊ฐ ์๋ ์๋ค์ False๋ก ๋ฐ๊ฟ์ฃผ์ด
๋ง์ง๋ง์๋ M๋ถํฐ N+1๋ฒ์งธ ๋ฐฐ์ด ์ค ๊ฐ์ด True์ธ ๋ฐฐ์ด๋ง ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
๐ฅ ์ฌ๊ธฐ์ ์ค์ํ ์ ์ 1์ ์์๊ฐ ์๋๊ธฐ๋๋ฌธ์ ์ ์ธํด์ฃผ์ด์ผ ํ๋ค๋ ์ ์ด๋ค. (index != 1)
์์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๊ฐ๋ ์ ์ด์ฉํ๋๋ฐ
์ด ๊ฐ๋ ์ ๋ํด์๋ ์๋์ ํฌ์คํ ์์ ์์ธํ ๋ค๋ฃจ์ด๋ณด์๋ค.
2021.03.10 - [๐์๊ณ ๋ฆฌ์ฆ/๐ ๊ฐ๋ ์ ๋ฆฌ] - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/python] 11651๋ฒ : ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.03.11 |
---|---|
[๋ฐฑ์ค/python] 2805๋ฒ : ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2021.03.11 |
[๋ฐฑ์ค/python] 10250๋ฒ : ACM ํธํ (0) | 2021.03.09 |
[๋ฐฑ์ค/python] 2869๋ฒ : ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค (0) | 2021.03.09 |
[๋ฐฑ์ค/python] 4673๋ฒ : ์ ํ ๋๋ฒ (0) | 2021.03.09 |