我有一个函数告诉我一个数字的因素,然后应该打印它有多少。这是为什么这个循环给我一个不正确的输出?
factors = 0
def getFactors(n):
global factors
for i in range(1,n):
if n%i==0:
print(i)
factors += 1
print(n, "has", factors, "factors.")
但是,因素的数量似乎是错误的。显然16有6个因素,即使它明确列出4.
>>> getFactors(16)
1
2
4
8
16 has 6 factors.
>>>
我在这里做了什么错?
你并不需要全路去'N'。显然,一个因素不能大于'n/2'。因此,你可以用'range(1,n/2)' – Psytho