python - 在这个 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
的唯一值是多少。i
n % i == 0
解决方案
因为这就是答案。乘以形成 32 的素数是 2、2、2、2 和 2。
这是数学的事实;与 Python 无关。
推荐阅读
- angular - JHipster:通过将 ComboBox 替换为 NgbTypeahead 和 observable 来实现 AutoComplete
- sql - SQL:用唯一值替换多个 Null
- sql - T-SQL CROSS APPLY 是否比在 SELECT 语句中添加表达式或计算更有效?
- javascript - 查找段上最近的点
- scala - 我应该如何理解这个定义“final def fold[B](ifEmpty: => B)(f: (A) => B): B”
- sql - 区分分组结果中给定列的值发生变化的第一行
- java - 两个应用程序使用 Intent 进行通信,传递数据
- python - 在 Python 中的 dict 中插入 dict
- javascript - 谷歌登录,如何从js触发?
- python - 如何为 LSTM 网络训练选择训练数据