前提・実現したいこと
pythonで、1~10000の中の全ての友愛数を算出するコードを書きたいです。
Wikipedia 220 の自分自身を除いた約数は、1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 で、和は 284 となる。一方、284 の自分自身を除いた約数は、1, 2, 4, 71, 142 で、和は 220 である。
上記は友愛数の定義になりますが、この場合220と284を出力したいです。
試したこと
一応試して見ましたが、エラーが出てしまい、やり方が合っているのかもわからない状態です。もし、正しいのでしたら、修正を加えてもらえたら幸いです。根本から間違っていましたら、書き方を教えて頂けないでしょうか?
python
1divisorlist=[], z=[] 2for x in range(2,10000): 3 for i in range(2,x): 4 if (x%i==0): 5 divisorlist.append(i) 6 j=sum(divisorlist) 7 for h in range (2,j): 8 if (j%h==0): 9 z.append(h) 10 if (x==sum(z)): 11 print(x,j)
エラー
python
1Traceback (most recent call last): 2 File "file名", line 1, in <module> 3 divisorlist=[], z=[] 4ValueError: not enough values to unpack (expected 2, got 0)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/05 05:09