私はPythonで暗号化スキームをシミュレートしています。私はそれに対する新しいユーザーです。
p = 512ビット数であり、その最大の素因数を計算する必要があります。私は2つのことを探しています。
- この大規模な素因数分解を処理するための最速のコード
- 512ビットの数値を入力として受け取り、それを処理できるコード。
私は他の言語でさまざまな実装を見てきました。私のコード全体はPythonであり、これが私が立ち往生している最後のポイントです。それで、Pythonに実装があるかどうか教えてください。
私はPythonの新規ユーザーなので、簡単に説明してください
英語が下手でごめんなさい。
編集(以下のOPの回答から取得):
#!/usr/bin/env python
def highest_prime_factor(n):
if isprime(n):
return n
for x in xrange(2,n ** 0.5 + 1):
if not n % x:
return highest_prime_factor(n/x)
def isprime(n):
for x in xrange(2,n ** 0.5 + 1):
if not n % x:
return False
return True
if __name__ == "__main__":
import time
start = time.time()
print highest_prime_factor(1238162376372637826)
print time.time() - start
上記のコードは「1238162376372637826」に対して(少し遅れて)機能しますが、
10902610991329142436630551158108608965062811746392 57767545600484549911304430471090261099132914243663 05511581086089650628117463925776754560048454991130443047
Pythonを狂わせます。上記のように、すぐに計算してもらう方法はありますか?