首页 > 解决方案 > 在这个 while 循环中发生了什么?

问题描述

我正在使用此函数来获取数字的主要因素。当前输出正在打印每个主要因素。我试图理解这段代码的工作原理,但我不明白while循环是如何工作的。

def get_primes(n):
    for i in range(2, n + 1):
        while n % i == 0:
            n = n / i
            print(i)

print(get_primes(32))

输出是正确的答案,2 2 2 2 2。但我不明白where2的唯一值是多少。in % i == 0

标签: python

解决方案


因为这就是答案。乘以形成 32 的素数是 2、2、2、2 和 2。

这是数学的事实;与 Python 无关。


推荐阅读