"Extended Euclidean algorithm"의 두 판 사이의 차이

ph
이동: 둘러보기, 검색
(새 문서: [https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm wiki] python code is as follows, <pre> def exteuclid(m, n, s0=1, s1=0, t0=0, t1=1): # s0 := s_{i-1} # s1 := s_i...)
 
잔글
14번째 줄: 14번째 줄:
 
     t = t0 - q*t1
 
     t = t0 - q*t1
 
     if r==0:
 
     if r==0:
         return q, s1, t1
+
         return n, s1, t1
 
     else:
 
     else:
 
         return exteuclid(n, r, s1, s, t1, t)
 
         return exteuclid(n, r, s1, s, t1, t)

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)