コンテンツへスキップ
🛠️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.