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

Digital Root Calculator

Вычислите цифровой корень целого числа путём многократного суммирования его цифр. Показывает пошаговый процесс и аддитивную устойчивость.

Аддитивный цифровой корень: Суммируйте цифры последовательно, пока не останется одна цифра.

Мультипликативный цифровой корень: Умножайте цифры последовательно, пока не останется одна цифра.

Об этом инструменте

Цифровой корень — это однозначное число, которое получается путём многократного сложения цифр исходного числа до тех пор, пока не останется одна цифра. Этот процесс лежит в основе нумерологии, модульной арифметики и математических загадок, открывая скрытый цифровой отпечаток любого целого числа. Калькулятор цифрового корня автоматизирует этот итеративный процесс, показывая каждый шаг и общее количество необходимых сокращений, известное как аддитивная персистентность.

Чтобы его использовать, просто введите любое положительное целое число, и инструмент покажет полную последовательность сокращений—как цифры комбинируются на каждом этапе—вместе с окончательным однозначным результатом и подсчётом количества требуемых итераций. Это полезно для учащихся, изучающих суммы цифр, преподавателей, демонстрирующих свойства чисел, и для всех, кто любопытствует о рекурсивной структуре, скрытой в больших числах.

Полезный факт: цифровые корни связаны с делением на 9 — цифровой корень числа конгруэнтен этому числу по модулю 9 (с особой обработкой для кратных 9). Все вычисления выполняются локально в вашем браузере, поэтому вы можете исследовать цифровые корни любых чисел, не выходя из браузера.

Часто задаваемые вопросы

Реализация кода

def digit_sum(n: int) -> int:
    return sum(int(d) for d in str(abs(n)))

def digital_root(n: int) -> int:
    """Returns the additive digital root (1-9, or 0 for 0)."""
    if n == 0:
        return 0
    remainder = n % 9
    return remainder if remainder != 0 else 9

def additive_persistence(n: int) -> tuple[int, list[int]]:
    steps = [n]
    count = 0
    while n >= 10:
        n = digit_sum(n)
        steps.append(n)
        count += 1
    return count, steps

def multiplicative_digital_root(n: int) -> tuple[int, list[int]]:
    steps = [n]
    count = 0
    while n >= 10:
        product = 1
        for d in str(n):
            product *= int(d)
        n = product
        steps.append(n)
        count += 1
    return count, steps

n = 493
print(f"Digital root of {n}: {digital_root(n)}")
persistence, steps = additive_persistence(n)
print(f"Steps: {' -> '.join(map(str, steps))}")
print(f"Additive persistence: {persistence}")

Comments & Feedback

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