도구스학업·수학

나르시시스트 수(암스트롱 수) 판정기

각 자릿수를 자릿수 개수만큼 거듭제곱해 더하면 자기 자신이 되는 수인지 판정합니다. 153 = 1³+5³+3³이 대표이며, 16자리까지의 44개를 모두 늘어놓고 왜 60자리를 넘는 것은 존재할 수 없는지도 함께 보여 줍니다.

0 이상의 정수. 60자리까지 다룹니다 — 그보다 큰 나르시시스트 수는 존재할 수 없습니다.

153 (3자리)

나르시시스트 수입니다

각 자릿수를 3제곱해 더하면 자기 자신이 됩니다.

자릿수3자리
쓰는 지수3제곱 (자릿수와 같음)
자릿수 거듭제곱의 합153
원래 수와의 차0

한 자리씩

자리숫자3제곱
111
25125
3327
합계153

지수가 3으로 고정된 것이 아니라 자릿수와 함께 움직입니다. 153은 세제곱, 9474는 네제곱으로 셉니다. 이 점을 놓치면 「153, 370, 371, 407 다음이 왜 1634인가」가 설명되지 않습니다.

16자리까지 모두 (44개)

자릿수개수
1100 ~ 9
20없음
34153, 370, 371, 407
431634, 8208, 9474
5354748, 92727, 93084
61548834
741741725, 4210818, 9800817, 9926315
8324678050, 24678051, 88593477
94146511208, 472335975, 534494836, 912985153
1014679307774
11832164049650, 32164049651, 40028394225, 42678290603, 44708635679, 49388550606, 82693916578, 94204591914
120없음
130없음
14128116440335967
150없음
1624338281769391370, 4338281769391371

두 자리에는 하나도 없습니다. 열두·열세·열다섯 자리도 비어 있습니다 — 자릿수가 늘수록 촘촘해지는 것이 아니라 있다가 없다가 합니다. 이 목록은 자릿수 조합만 훑어 찾은 것이라 빠뜨린 값이 없습니다.

나르시시스트 수는 끝이 있습니다. d자리 수의 자릿수 거듭제곱 합은 아무리 커도 d × 9d인데, d자리 수는 적어도 10d−1입니다. 이 둘이 뒤집히는 순간부터는 후보가 아예 없고, 그 지점이 61자리입니다. 지금 넣은 3자리라면 합의 최댓값이 4자리 (최솟값 3자리)라 아직 여유가 있습니다. 소수나 완전수처럼 무한히 이어지는 것이 아니라 유한한 목록이라는 것이 이 수의 성격입니다.
어떻게 열여섯 자리까지 다 찾았나. 열여섯 자리 수를 모두 훑으면 10¹⁶ 가지라 손을 댈 수 없습니다. 그런데 자릿수 거듭제곱의 합은 자릿수를 어떤 순서로 늘어놓든 같으므로, 「0이 몇 개, 1이 몇 개, …」 하는 조합만 세면 됩니다. 그것은 200만 가지 안쪽이라 몇 초면 끝납니다. 조합마다 합을 구한 뒤 그 합의 자릿수 구성이 처음 가정한 조합과 같은지 보면 판정이 끝납니다.
비슷하지만 다른 수들이 있습니다. 지수를 3에 고정하면 «세제곱 자릿수 불변수»가 되어 다른 목록이 나오고, 자릿수를 제곱해 더하는 것을 되풀이하는 것은 행복수 판정입니다. 완전수는 자기 자신을 뺀 약수의 합을 보므로 또 다른 이야기입니다. 계산은 모두 BigInt로 하므로 열여섯 자리에서도 끝자리가 틀리지 않습니다.

계산 방법

  1. 1판정할 수를 넣습니다.
  2. 2「한 자리씩」 표에서 각 자릿수가 몇 제곱되는지 봅니다.
  3. 3합이 원래 수와 같은지 확인합니다.
  4. 4자릿수별 목록에서 그 자릿수에 몇 개가 있는지 봅니다.
  5. 5자릿수를 늘려 가며 언제부터 후보가 없어지는지 확인합니다.

자주 묻는 질문

각 자릿수를 자릿수 개수만큼 거듭제곱해 더하면 자기 자신이 되는 수입니다. 153은 세 자리이므로 1³ + 5³ + 3³ = 1 + 125 + 27 = 153이 되어 해당하고, 9474는 네 자리이므로 9⁴ + 4⁴ + 7⁴ + 4⁴로 셉니다. 암스트롱 수라고도 부릅니다.

그렇습니다. 지수가 3에 고정된 것이 아니라 자릿수와 함께 움직입니다. 이 점을 놓치면 153, 370, 371, 407 다음이 왜 1634인지가 설명되지 않습니다. 지수를 3에 고정하면 「세제곱 자릿수 불변수」라는 다른 목록이 됩니다.

153, 370, 371, 407의 네 개뿐입니다. 두 자리에는 하나도 없고, 네 자리는 1634, 8208, 9474의 세 개입니다. 자릿수가 늘수록 촘촘해지는 것이 아니라 있다가 없다가 하며, 열두·열세·열다섯 자리도 비어 있습니다.

아닙니다. 유한합니다. d자리 수의 자릿수 거듭제곱 합은 아무리 커도 d × 9^d인데 d자리 수는 적어도 10^(d−1)이라, 이 둘이 뒤집히는 61자리부터는 후보가 아예 없습니다. 소수나 완전수와 달리 목록이 끝나는 것이 이 수의 성격입니다.

자릿수 조합만 훑으면 됩니다. 자릿수 거듭제곱의 합은 자릿수를 어떤 순서로 늘어놓든 같으므로 「0이 몇 개, 1이 몇 개, …」 하는 조합만 세면 되는데, 열여섯 자리라도 200만 가지 안쪽입니다. 조합마다 합을 구한 뒤 그 합의 자릿수 구성이 처음 가정한 조합과 같은지 보면 판정이 끝납니다.

보는 규칙이 다릅니다. 행복수는 자릿수를 제곱해 더하는 것을 되풀이해 1에 닿는지 보고, 완전수는 자기 자신을 뺀 약수의 합을 봅니다. 나르시시스트 수는 한 번의 자릿수 거듭제곱 합이 자기 자신과 같은지만 봅니다.

전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 16자리까지의 44개를 상수로 담아 두고, 테스트가 매번 자릿수 조합 탐색으로 다시 찾아 이 목록과 대조합니다. 탐색이 1.5초쯤 걸려 화면에서 그때그때 돌리기에는 무겁지만, 손으로 적어 넣은 값이 굳어질 일은 없습니다.
  • 조합 탐색이 맞는지는 원리가 다른 무식한 방법으로 확인합니다. 0부터 999,999까지 하나씩 세어 본 결과와 조합 탐색의 결과가 같습니다.
  • 두 자리에 하나도 없다는 것은 조합 탐색만 믿지 않고 10부터 99까지 90개를 모두 세어 확인했습니다.
  • 「61자리부터는 후보가 없다」는 상한도 d × 9^d와 10^(d−1)을 BigInt로 직접 견줘 검사합니다. 60자리까지는 모두 가능성이 열려 있고 61자리부터 닫히는 것, 찾아 둔 값이 모두 그 상한 안에 있는 것을 함께 고정했습니다.
  • 계산은 모두 BigInt로 합니다. 16자리 값(4338281769391371)을 배정밀도 실수로 세면 끝자리가 조용히 틀리기 때문이고, 이 값의 판정도 테스트로 고정해 두었습니다.
  • 판정은 60자리까지 받습니다. 그보다 큰 나르시시스트 수는 위 상한 논증에 따라 존재할 수 없으므로 입력 자체를 막습니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 1일 · 결과는 참고용 추정치입니다.