pollard_rho

master
serr 2025-02-23 20:25:59 +03:00
parent 09451a3b37
commit 6404f98d0b
1 changed files with 2 additions and 2 deletions

View File

@ -43,7 +43,7 @@ def solve(a, b, m):
x0 = b1 * gcd(a1, m1)[0]
return x0 % m
def pollard_rho(a, b, p, ord=0):
def pollard_rho(a, b, p, ord=None):
u, v = 1, 1
d = c = pow(a, u, p) * pow(b, v, p) % p
log_c, log_d = [1, 1], [1, 1]
@ -57,7 +57,7 @@ def pollard_rho(a, b, p, ord=0):
# print(c, d, log_c, log_d)
if c == d: break
if ord == 0: ord = order(a, p)
if ord == None: ord = order(a, p)
#print(f"{log_c[0]}+{log_c[1]}x≡{log_d[0]}+{log_d[1]}x(mod{ord})")
#print(f"{log_c[1]-log_d[1]}x≡{log_d[0]-log_c[0]}(mod{ord})")
return solve(log_c[1]-log_d[1], log_d[0]-log_c[0], ord)