我正在设计一个能打印数字质因数的程序。
以下是代码:
while True:
x = int(input("Enter a positive number: "))
if x >= 0:
break
ranger = list(range(1, x+1))
counter = 0
#The first for loop checks if the number is a factor
for i in ranger:
if x % i == 0:
#The second for loop checks if the number is prime
for element in range(1, i+1 ):
if i % element == 0:
counter += 1
if counter == 2:
prime_factors = []
prime_factors += i
#Counter having a value of 2 means the number is prime
print(prime_factors)
我一直收到以下错误:
Traceback (most recent call last):
File ".\primefactors.py", line 18, in <module>
prime_factors += i
TypeError: 'int' object is not iterable
但是我似乎不太明白为什么会出现这个错误。
prime_factors = [] ; prime_factors += i
实现的目标可以更简单明了地写成prime_factors = [i]
。 - kindall