【发布时间】:2014-12-29 20:47:15
【问题描述】:
我已经编写了这段代码(在 python 中)用于分解素数中的整数(费马定理)。
#!/usr/bin/python2
import random,math
n=590632926550117049
a=math.ceil(math.sqrt(n))
b2=a*a-n
while math.sqrt(b2)!=math.floor(math.sqrt(b2)):
a=a+1
b2=a*a-n
b=math.sqrt(b2)
p=a+b
q=a-b
print("p =",p)
print("q =",q)
数字 n=590632926550117049 是 57848543*10209987943 的乘积,但 我的程序 返回:1156469901*510720535。为什么 ?
编辑: 即 187 或 15 或其他数字可以正常工作。
【问题讨论】:
标签: python factorization