私はこのコードで素数である数の要素を返そうとしています。たとえば、誰かがn = 100
に入ると、彼らは2と5に戻ります。私は最初の部分が正しいかどうかをチェックしていると思いますが、どういうわけか、チェックの第2部分で何が欠けているのか分かりません素数の場合因数である素数を見つける
誰かお手伝いできますか?
ありがとうございました。
l = []
def factor(n):
print 'These are the factors:'
for num in range(2,n):
if n%num == 0: #checks that it is a factor
print num #These are the factors
l.append(num)
for i in l:
if i%2 == 0 and i > 2: #checks for even numbers
l.remove(i)
else:
for x in range(3,i,2): #checks for odd numbers
if i%x == 0:
l.remove(i)
print l
私は100で試してみましたが、[2,5,20,50]を返しました。 20と50はなぜ取り除かれないのですか? また、90で試してみましたが、 "list.remove(x):xがリストにない"というエラーが表示されます。 理由を十分に理解できないのですか?誰かが説明できますか? – paulnsn