我正在用 python 模拟我的加密方案,我是它的新用户。
p = 512 位数,我需要为其计算最大素数,我正在寻找两件事:
- 处理这种大型素数分解的最快代码
- 可以将 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
让蟒蛇发疯。有什么办法可以像上面一样,我可以立即计算出来吗?