跳到内容
🛠️ToolsShed

数字根计算器

通过反复对数字求和计算任意整数的数字根。逐步显示过程和加法持久性。

加法数字根: 反复对各位数字求和,直到剩下一位数字。

乘法数字根: 反复对各位数字求积,直到剩下一位数字。

关于此工具

数字根(digital root)是指将一个数的各个数字反复相加,直到得到一个个位数的结果。这一过程是数字学、模运算和数学谜题的基础,揭示了任何整数潜在的数字指纹。数字根计算器将这个反复相加的过程自动化,显示每一步的计算过程、最终的个位数结果,以及所需的迭代次数,后者称为加法持久性。

使用方法非常简单:输入任意正整数,工具便显示完整的约化序列——即每一步数字的组合方式——以及最终的个位数结果和所用的迭代次数。它对正在学习数字和的学生、演示数字性质的教师以及对大数中隐藏的递归结构感兴趣的人都很有用。

一个有趣的发现是数字根与除以 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.