템플릿 - GCD 확대, 중국 잉여 정리 +

하나  의 INT exgcd ( int로 A, INT의 B를, INT 및 X, INTY)
 2  {
 3      의 경우 (b의 == 0 )
 4      {
 5          , X = 1 , Y가 = 0 ;
6          복귀 a 및
7      }
 8      INT GCD exgcd = (B, A %의 B, X, Y);
9      의 INT t = 용의 X;
10      X = Y;
(11)      Y가 = TA / B 형 *의 Y;
12      리턴 GCD;
13  }
14  INT 중국 ( INT W [], INT의 B [] 의 INT K)
 15  {
 16      INT X, Y, A = 0 , m, N = 1 ;
(17)      에 대한이 ( 값 int = 1을 1 ; 나는 <= K를, 난 ++ )
 18          N * = W [I];
(19)      에 대한이 ( int로 I = 1 ; K = 난을 <; 내가 ++ )
 20      {
 21          , M = N / W [I];
22          exgcd (W [i]를, m, X, Y);
23          A = (a + y를 m 개의 *의 * B [I]) %의 N;
24      }
25      리턴 A> 0 A : (a +의? N);
26 }

빠른 전원 반전 위안 끊었와 이유를 모르겠어요 ...

 

추천

출처www.cnblogs.com/Al-Ca/p/11101929.html