Extended Euclidean algorithm

ph
Admin (토론 | 기여)님의 2017년 8월 11일 (금) 15:39 판
이동: 둘러보기, 검색

wiki

python code is as follows,

def exteuclid(m, n, s0=1, s1=0, t0=0, t1=1): 
    # s0 := s_{i-1}
    # s1 := s_i
    # t0 := t_{i-1}
    # t1 := t_i
    assert m>=n
    q = m/n
    r = m%n
    s = s0 - q*s1
    t = t0 - q*t1
    if r==0:
        return n, s1, t1
    else:
        return exteuclid(n, r, s1, s, t1, t)
#test
#print exteuclid(240, 46)
#(2, -9, 47)