代码如下:
import random
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def pollards_rho(n):
if n % 2 == 0:
return (2, n // 2)
x = random.randint(1, n-1)
y = x
c = random.randint(1, n-1)
d = 1
w服务器托管网hile d == 1:
x = (x*x + c) % n
y = (y*y + c) % n
y = (y*y + c) % n
d = gcd(abs(x-y), n)
if d == n:
return pollards_rho(n)
return (d, n // d)
n = 0x60E303A2D6FFFF4BDF86EE10F13313F123服务器托管网6D7F067D52FFB4CAC84648CC87501394A798F7BBB1B5B488AA7386C374CD93DC0BA776477BDE07543F1397F130F9A9
p, q = pollards_rho(n)
print("Prime factors are:", hex(p), hex(q))
在这个示例中,我们首先定义了两个辅助函数:gcd
用于计算两个数的最大公约数,pollards_rho
用于实现Pollard’s rho算法。在pollards_rho
函数中,我们首先检查输入的数是否为偶数,如果是,则返回(2, n//2)。然后,我们选择随机的x和c,并计算d=gcd(abs(x-y), n)。如果d==n,则说明选择的随机数不好,需要重新选择。如果d!=n,则说明我们已经找到了一个非平凡的因子d,可以返回(d, n//d)。最后,我们调用pollards_rho
函数并将结果打印出来。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 【OpenCV DNN】Flask 视频监控目标检测教程 06
欢迎关注『OpenCV DNN @ Youcans』系列,持续更新中 【OpenCV DNN】Flask 视频监控目标检测教程 06 3.6 OpenCV+Flask实时监控和视频播放 cvFlask06 项目的文件树 cvFlask06 项目的程序文件 cv…