# coding = utf-8 defcomputeD(fn, e): (x, y, r) = extendedGCD(fn, e) # y maybe < 0, so convert it if y < 0: return fn + y return y
defextendedGCD(a, b): # a*xi + b*yi = ri if b == 0: return (1, 0, a) # a*x1 + b*y1 = a x1 = 1 y1 = 0 # a*x2 + b*y2 = b x2 = 0 y2 = 1 while b != 0: q = a / b #ri = r(i-2) % r(i-1) r = a % b a = b b = r #xi = x(i-2) - q*x(i-1) x = x1 - q * x2 x1 = x2 x2 = x #yi = y(i-2) - q*y(i-1) y = y1 - q * y2 y1 = y2 y2 = y return(x1, y1, a)
p = 275127860351348928173285174381581152299 q = 319576316814478949870590164193048041239 e = 65537