我是一名初学者程序员,我决定编写一个简单的程序,从数字中获取素数然后打印它们,但我在打印最终结果时遇到了麻烦。这是代码:
n = int(raw_input("Number?: "))
m = n
k = 2
czynniki = []
while(m != 1):
if m%k == 0:
czynniki.append(k)
print m, "\t", '|', k
m = m/k
else:
k+=1
print m
print n, ' = ',
for czynnik in czynniki:
if czynniki.count(czynnik)>1:
print czynnik, '^', czynniki.count(czynnik), ' *',
czynniki = filter(lambda x: x!=czynnik, czynniki)
else:
print czynnik, ' *',
一切都很好,直到最后。例如,我希望它在输入 1025 时打印“1025 = 5^2 * 41”,但它会打印“1025 = 5^2 * 5 * 41”,就好像过滤功能根本没有影响一样。错误在哪里?