2

リンク : http://projecteuler.net/problem=23

これは、答えを知りたくない場合は、これ以上調べないでくださいという警告です。

オンラインで解決策があることを知っています。しかし、私は自分のコードの問題を理解することができません。私が作成したコードと要因モジュールのコードを添付しました。どんな助けでも感謝します。

実際の答え = 4179871. 私の答え = 4190404


from math import *
from time import *
from prime import *
from factors import *

abundant = list(n for n in xrange(12,28124) if n < sum_of_factors(n))

sums = {}

for i in abundant: for j in abundant: if (i+j) > 28123: break else: sums[i+j] = 1

non_abun = [i for i in range(1,28124)] print sum(non_abun) - sum(sums)

要因のコード -


from time import *
from math import *

def factors(num): factors_array = [1,]

n = num
for k in range(2,int(ceil(sqrt(num)))):
    if(n%k == 0):
        if(k not in factors_array):
            factors_array.append(k)
            factors_array.append(n/k)

return factors_array

def sum_of_factors(数値): sum(factors(num)) を返す

4

1 に答える 1

4

factors(4)くれぐれもお譲り[1,2]致し[1]ます。関数を修正しますfactors

于 2013-07-04T04:21:16.410 に答える