我有一個函數告訴我一個數字的因素,然後應該打印它有多少。這是爲什麼這個循環給我一個不正確的輸出?
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