Перейти к содержимому

Narcissistic Number Checker

Проверьте, является ли число нарциссическим (числом Армстронга), и найдите все нарциссические числа до заданного предела.

Найти все нарциссические числа до

Что такое нарциссическое число?

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.