私はPythonでコーディングすることを学んでおり、Project Eulerを使って問題を試してみることを本当に楽しんでいます。私は600851475143の最大の素因数を見つけるように頼んでいる問題#3にいる。私はこれを行うために以下のコードを書いており、540995までテストされた小さい値に対してはうまくいくが、「捕捉されていないシグナル#9」とは何ですか? TextMate、Python、MacOS
Program terminated by uncaught signal #9 after 50.95 seconds.
私はOS 10.12を実行しているMac上のPython 2.7.13でTextMateの上でこれを書いています:600851475143は、私はエラーを取得します。 Googleはこれに対する解決策を見つけるのを助けてくれませんでした。私はどんな洞察にも感謝します。ここで
は、私が実行していたコードです:
n = 600851475143
fList = []
pList = []
# factor n starting with largest factor
for i in range(n-2, 2, -2):
# if prime factor list is empty
if len(pList) == 0:
if n % i == 0:
factor = i
# as a factor is found, test for primality
for k in range(factor-2, 2, -2):
if factor % k == 0:
if factor not in fList:
fList.append(factor)
if factor not in fList:
pList.append(factor)
print(pList)
はあなたの洞察力をありがとう!
わからないにアプローチする方法をここで言われています。しかし、あなたのコードは非常に非常に長い時間実行されます。 forループは約3,000億のループを実行します。 –