๋ฌธ์
์ ํ ๋๋ฒ๋ 1949๋ ์ธ๋ ์ํ์ D.R. Kaprekar๊ฐ ์ด๋ฆ ๋ถ์๋ค. ์์ ์ ์ n์ ๋ํด์ d(n)์ n๊ณผ n์ ๊ฐ ์๋ฆฌ์๋ฅผ ๋ํ๋ ํจ์๋ผ๊ณ ์ ์ํ์. ์๋ฅผ ๋ค์ด, d(75) = 75+7+5 = 87์ด๋ค.
์์ ์ ์ n์ด ์ฃผ์ด์ก์ ๋, ์ด ์๋ฅผ ์์ํด์ n, d(n), d(d(n)), d(d(d(n))), ...๊ณผ ๊ฐ์ ๋ฌดํ ์์ด์ ๋ง๋ค ์ ์๋ค.
์๋ฅผ ๋ค์ด, 33์ผ๋ก ์์ํ๋ค๋ฉด ๋ค์ ์๋ 33 + 3 + 3 = 39์ด๊ณ , ๊ทธ ๋ค์ ์๋ 39 + 3 + 9 = 51, ๋ค์ ์๋ 51 + 5 + 1 = 57์ด๋ค. ์ด๋ฐ์์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ์์ด์ ๋ง๋ค ์ ์๋ค.
33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...
n์ d(n)์ ์์ฑ์๋ผ๊ณ ํ๋ค. ์์ ์์ด์์ 33์ 39์ ์์ฑ์์ด๊ณ , 39๋ 51์ ์์ฑ์, 51์ 57์ ์์ฑ์์ด๋ค. ์์ฑ์๊ฐ ํ ๊ฐ๋ณด๋ค ๋ง์ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด, 101์ ์์ฑ์๊ฐ 2๊ฐ(91๊ณผ 100) ์๋ค.
์์ฑ์๊ฐ ์๋ ์ซ์๋ฅผ ์ ํ ๋๋ฒ๋ผ๊ณ ํ๋ค. 100๋ณด๋ค ์์ ์ ํ ๋๋ฒ๋ ์ด 13๊ฐ๊ฐ ์๋ค. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97
10000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ํ ๋๋ฒ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ ๋ ฅ์ ์๋ค.
์ถ๋ ฅ
10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ํ ๋๋ฒ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ฆ๊ฐํ๋ ์์๋ก ์ถ๋ ฅํ๋ค.
์ ๋ต
natural_num = set(range(1, 10001))
set_num = set()
for i in range(1, 10001):
for j in str(i):
i += int(j)
set_num.add(i)
self_num = natural_num - set_num
for x in sorted(self_num):
print(x)
1๋ถํฐ 10000๊น์ง set์ ์ง์ด๋ฃ๊ณ , ์์ฑ์๋ค์ ๊ตฌํ ๋ค ๋นผ๋ฉด ์ ํ๋๋ฒ๋ค๋ง ๋จ๊ฒ ๋๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 1918 - ํ์ ํ๊ธฐ์ (0) | 2020.11.02 |
---|---|
[Python] ๋ฐฑ์ค 2960 - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2020.10.27 |
[Python] ๋ฐฑ์ค 1316 - ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค (0) | 2020.10.06 |
[Python] ๋ฐฑ์ค 2108 - ํต๊ณํ (0) | 2020.09.30 |
[Python] ๋ฐฑ์ค 1712 - ์์ต๋ถ๊ธฐ์ (0) | 2020.09.28 |