๐งฉ๋ฌธ์ ํด์
์๋ฆฌ์ n์ด ์ฃผ์ด์ก์ ๋ ๊ทธ n ์๋ฆฌ์์ธ ์ ๊ธฐํ ์์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์
์ ๊ธฐํ ์์๋
n = 4 ์ผ ๊ฒฝ์ฐ
num[0] ๋ ์์
num[:2] ๋ ์์
num[:3] ๋ ์์
num ๋ ์์๋ผ๋ฉด num์ ์ ๊ธฐํ ์์์ด๋ค.
์ฆ ์ฒซ๋ฒ์งธ ์ซ์๋, ์ฒซ๋ฒ์งธ๋ถํฐ ๋๋ฒ์งธ์ซ์๋, ... ์ฒซ๋ฒ์งธ๋ถํฐ n๋ฒ์งธ์ซ์๋ ์์๋ผ๋ฉด ์ ๊ธฐํ ์์์ธ ๊ฒ์ด๋ค.
๐ ๊ณ ๋ฏผ
๋ชจ๋ ์ซ์๋ฅผ ๋์ ํด๊ฐ๋ฉฐ ์์์ธ์ง ํ๋ณํ๋ค๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ ๋ปํ๋ค. (์์ฆ ์๊ฐ์ด๊ณผ๊ฐ ๋ง์ด ๋๋ค...ใ )
์์ ๋ฌธ์ ๋ฅผ ๋ณด๋ ์ ์ ์๋ ์ ์ด ์์๋ค. ์ฒซ๋ฒ์งธ ์ซ์๋ ๋ฌด์กฐ๊ฑด 2,3,5,7 ์ด๊ณ ๊ทธ ๋ค์์ ์ค๋ ์ซ์๋ค์ 1,3,7,9 ๋ค์ด ๋ง ์กฐํฉ๋์ด์ ๋ํ๋ฌ๋ค. ๋๋ ค๋ณผ ์ซ์๋ค์ด ์ ๋ฐ์ด์ ์ค์ด๋ค์๋ค!
์ฒซ๋ฒ์งธ ์ซ์๊ฐ 2, 3, 5, 7 ์ธ ์ด์ !
์ด์ฐ๋ณด๋ฉด ๋น์ฐํ ์ด์ผ๊ธฐ์ด๋ค. ์ ๊ธฐํ ์์๊ฐ ๋๋ ค๋ฉด ์ ์ผ ์ฒซ๋ฒ์งธ ์ซ์๋ ์์์ฌ์ผ ํ๋ ๋น์ฐํ ์ฒซ๋ฒ์งธ ์ซ์๋ ์์์ธ 2, 3, 5, 7 ๋ฐ์ ์ค์ง ๋ชปํ๋ค.
๋ค์ ์ซ์๋ค์ด 1, 3, 7, 9 ์ธ ์ด์ !
๋์๋ฆฌ๊ฐ 0, 2, 4, 6, 8์ด๋ฉด 2๋ก ๋๋์ด์ง๊ธฐ ๋๋ฌธ์ ์์๊ฐ ๋์ง ๋ชปํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฐฌ๊ฐ์ง๋ก ๋์๋ฆฌ๊ฐ 5๊ฐ ๋๋ฉด 5๋ก ๋๋์ด์ง๊ธฐ ๋๋ฌธ์ 0, 2, 4, 5, 6, 8๊ฐ ๋ค์ ์ฌ์ ์๋ ๊ฒ์ด๋ค.
๐ํ์ด
1. ์ฒซ๋ฒ์งธ ์ซ์๋ ๋ฌด์กฐ๊ฑด 2, 3, 5, 7๋ก
2. ๊ทธ ๋ค์ ์ซ์๋ค์ 1, 3, 7, 9 ๋ฅผ ํ๋์ฉ ๋ฃ์ด๋ณธ ๋ค์ ๋ง์ฝ ์์๋ผ๋ฉด return
3. ํฉ์น ์ซ์๋ค์ด ์์์ด๊ณ ์ฃผ์ด์ง ๊ธธ์ด n์ด๋ผ๋ฉด ์ถ๋ ฅ
๋ง์น ํฉ์ฒด ์ํค๋ฏ์ด ๋ค์ ์ซ์๋ค์ ์ถ๊ฐํด์ค๋ค. ์์๋ผ๋ฉด ํ๋ํฉ์ฒด, ์์๋ผ๋ฉด ํ๋ํฉ์ฒด ์ด๋ ๊ฒ n๊น์ง ๋ฐ๋ณตํ๋ค๊ฐ n์ด ๋๋ฉด ์ถ๋ ฅํด์ฃผ๋ ๊ฒ์ด๋ค.
๐ป์ฝ๋
def isprime(num):
# ์์ ํ๋ณ
for i in range(2, int(int(num)**0.5)+1):
# 2~์ ๊ณฑ๊ทผ๊น์ง ์ญ ๋๋ ๋ณด๊ณ ๋๋จธ์ง๊ฐ ์๋ค๋ฉด ์์์๋
if int(num) % i == 0:
return
# ์ฃผ์ด์ง ๊ธธ์ด n์ ๋๋ฌํ๋ค๋ฉด ์ถ๋ ฅ
if len(num) == n:
print(num)
return
# ๋ค์ ์ซ์์ธ 1,3,7,9๋ฅผ ์ถ๊ฐํด์ค๋ค.
for j in secon:
isprime(num+j)
n = int(input())
first = ['2', '3', '5', '7'] # ์ฒซ๋ฒ์งธ ์ซ์
secon = ['1', '3', '7', '9'] # ๋ค์ ์ซ์
for k in first: isprime(k)
๐๋ฌธ์ ๋งํฌ: ์ ๊ธฐํ ์์
'Problem Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1620๋ฒ: ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ - ํ์ด์ฌ (0) | 2022.05.03 |
---|---|
[๋ฐฑ์ค] 1495๋ฒ: ๊ธฐํ๋ฆฌ์คํธ - ํ์ด์ฌ (0) | 2022.05.02 |
[๋ฐฑ์ค] ๐ฅณ200๋ฌธ์ ๋ฌ์ฑ!๐ฅณ (0) | 2022.05.01 |
[๋ฐฑ์ค] 1406๋ฒ: ์๋ํฐ - ํ์ด์ฌ (0) | 2022.04.30 |
[๋ฐฑ์ค] 13305๋ฒ: ์ฃผ์ ์ - ํ์ด์ฌ (0) | 2022.04.30 |