๋ฌธ์
์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ชจ๋ ์์๋ฅผ ์ฐพ๋ ์ ๋ช ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ๋ค.
- 2๋ถํฐ N๊น์ง ๋ชจ๋ ์ ์๋ฅผ ์ ๋๋ค.
- ์์ง ์ง์ฐ์ง ์์ ์ ์ค ๊ฐ์ฅ ์์ ์๋ฅผ ์ฐพ๋๋ค. ์ด๊ฒ์ P๋ผ๊ณ ํ๊ณ , ์ด ์๋ ์์์ด๋ค.
- P๋ฅผ ์ง์ฐ๊ณ , ์์ง ์ง์ฐ์ง ์์ P์ ๋ฐฐ์๋ฅผ ํฌ๊ธฐ ์์๋๋ก ์ง์ด๋ค.
- ์์ง ๋ชจ๋ ์๋ฅผ ์ง์ฐ์ง ์์๋ค๋ฉด, ๋ค์ 2๋ฒ ๋จ๊ณ๋ก ๊ฐ๋ค.
N, K๊ฐ ์ฃผ์ด์ก์ ๋, K๋ฒ์งธ ์ง์ฐ๋ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K < N, max(1, K) < N ≤ 1000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ K๋ฒ์งธ ์ง์์ง ์๋ฅผ ์ถ๋ ฅํ๋ค.
ํด์ค ์ฝ๋
N,K = map(int,input().split())
array = ["True"]*(N+1)
cnt=0
print(array)
for i in range(2,N+1):
for j in range(i,N+1,i):
if array[i] != False:
array[i] = False
cnt += 1
if cnt == K:
print(j)
๋ถ์ > ์ฐ์ index๊ฐ 0๋ถํฐ N+1๊น์ง์ธ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ๊ทธ ์์ ์์๋ ๋ชจ๋ True๋ก ์ง์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ index๊ฐ 2๋ถํฐ n+1๊น์ง i์ ํฌ๊ธฐ๋งํผ (i, i + 1* i, i + 2* i ...) ์์๋ฅผ false๋ก ๋ฐ๊พธ๋ฉด์ ๊ทธ ํ์๋ฅผ ์นด์ดํธํ๋ค๊ฐ ํ์์ ํฌ๊ธฐ๊ฐ K์ ๋์ผํด์ง๋ฉด ๊ทธ๋์ j ์ฆ ์ง์์ง ์ซ์๋ฅผ ํ๋ฆฐํธํ๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 1 (#14467) (0) | 2022.04.03 |
---|---|
[BOJ] ํ๋ฆฐํฐ ํ (#1966) (0) | 2022.04.03 |
[BOJ] ๋ฌธ์์ด (#1120) (0) | 2022.04.03 |
[BOJ] ํ์กฐ์์ด์ ๋ฆฌํ๊ณ ์ดใ ใ (#14659) (0) | 2022.04.01 |
[BOJ] ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (#2775) (0) | 2022.04.01 |