ここでは、数値の素因数を求める2つの関数があります。 クレジット:明らかに第二のコードがたくさんより速く動作しますが、なぜそれがint型ではなくとして出力long型の最大の要因を行い https://stackoverflow.com/a/412942/6211963長整数を表示するPython?
def prime_factors1(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
return factors
def prime_factors2(n):
"""Returns all the prime factors of a positive integer"""
factors = []
d = 2
while n > 1:
while n % d == 0:
factors.append(d)
n /= d
d = d + 1
if d*d > n:
if n > 1: factors.append(n)
break
return factors
トリプティク?
>>> prime_factors1(65126264424)
[2, 2, 2, 3, 13, 29, 7197863]
>>> prime_factors2(65126264424)
[2, 2, 2, 3, 13, 29, 7197863L]
2番目のバージョンでは、 'n'を追加しています。これは長いです。 – Evert
Linux x86_64でPython 2.7.11でこれを再現することはできません。 – nwk
Linux x86_64でもPython 2.7.11で再現できません –