본문으로 건너뛰기
🛠️ToolsShed

Narcissistic Number Checker

숫자가 나르시시스트(Armstrong) 수인지 확인하고 주어진 한계까지 모든 나르시시스트 수를 찾습니다.

지정된 범위까지 모든 나르시시스 수 찾기

나르시스트 수란?

A narcissistic number (Armstrong number) equals the sum of its digits each raised to the power of the digit count. Example: 153 = 1^3 + 5^3 + 3^3 = 153.

이 도구 소개

나르시시스트 수(암스트롱 수라고도 불림)는 자릿수의 거듭제곱으로 올린 각 자릿수의 합이 원래 수와 같은 수입니다. 예를 들어 153은 나르시시스트 수입니다. 왜냐하면 1³ + 5³ + 3³ = 153이기 때문입니다. 이 수들은 수학적으로 흥미로운 특이점이며 수 체계에서 드물게 나타나므로 탐색하고 이해하기에 재미있습니다.

이 검사 도구를 사용하려면 임의의 양의 정수를 입력하면 해당 수가 나르시시스트 수인지 즉시 판정합니다. 모든 계산이 브라우저에서 수행되므로 계정을 만들 필요가 없고 개인정보에 대해 걱정할 필요가 없습니다. 9 같은 작은 수부터 큰 수까지 지원하여 수학적 성질의 검증을 빠르게 도와줍니다.

나르시시스트 수는 수학 애호가, 수론을 배우는 학생, 계산 수학을 탐색하는 프로그래머에게 인기가 있습니다. 나르시시스트 수의 완전한 목록은 유한하며 잘 문서화되어 있어서 이 도구는 수학적 패턴의 검증 및 교육적 탐색에 유용합니다.

자주 묻는 질문

코드 구현

def is_narcissistic(n: int) -> bool:
    """Check if n is a narcissistic (Armstrong) number."""
    digits = str(n)
    power = len(digits)
    return sum(int(d) ** power for d in digits) == n

def find_narcissistic(limit: int) -> list[int]:
    """Find all narcissistic numbers up to limit."""
    return [n for n in range(limit + 1) if is_narcissistic(n)]

# Check specific numbers
for n in [153, 370, 371, 407, 1634, 9474]:
    digits = [int(d) for d in str(n)]
    power = len(str(n))
    breakdown = " + ".join(f"{d}^{power}" for d in digits)
    result = sum(d ** power for d in digits)
    print(f"{n}: {breakdown} = {result} {'✓' if result == n else '✗'}")

# Find all up to 10000
print("\nAll narcissistic numbers up to 10000:")
print(find_narcissistic(10000))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.