私は初心者プログラマーです。素因数を数値から取り出して印刷する簡単なプログラムを作成することにしましたが、最終結果を印刷するのに問題があります。コードは次のとおりです。
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」を出力します。バグはどこにありますか?