중국 잉여 정리 프라임 계수는없는 경우
==의 케이 *의 GCD (기준 주요 도끼 +가 A, B), 어디에 여러 주와 최소
https://vjudge.net/problem/POJ-2891
사용법 #include <iostream> #INCLUDE <cstdio> #INCLUDE <큐> #INCLUDE <알고리즘> #INCLUDE <cmath> #INCLUDE <CString을> #DEFINE INF 2147483647 #DEFINE N 1,000,010 #DEFINE의 P (a) putchar (a) #DEFINE (나, A는, B)에 대한이 (긴 길이 난 =; 나는 = B를을 <; I ++) 용 // 전쟁 // 2019년 8월 8일 사용 스페이스 성병; 긴 길이 T, N; 긴 길이 R [N], A [N], X, Y, GCD, 플래그; 무효 의 ( 긴 길이 및 {X) 길이 길이 (Y) = 1 ; 숯 C = getchar가 (); X = 0 ; 반면 (c < ' 0 ' || C> ' 9 ' ) { 경우 (c == ' - ' ) Y = - 1 ; C = getchar가 ();} 동안 (c <= ' 9 ' && C> = ' 0 ' ) {(X) = (X << 1 ) + (X << 3 ) + C- ' 0 ' , C = getchar가 ()} X * = Y; 긴 X) { 경우 (X < 0 ) {P ( " - " ), X = - (X)} 의 경우 (x> 9 ) O (X / 10 ); P (X의 % 10 + ' 0 ' ); } 공극 exgcd ( 긴 길이 A, 긴 길이 B, 긴 길이 및 X, 긴 길이 및 Y) { 경우 (! {b) X = 1 , Y는 = 0 ; GCD가 = 단계; 반환; } exgcd (B, A %의 B, Y, X); Y - = A / B * X; } {) (메인 체결 동안 (는 scanf ( " %의 LLD " , N)! = EOF) { 플래그 = 0 ; (Ⅰ에 대해서는 1 , N) 의 (R [I]) 에 (a [I]); (Ⅰ에 대해서는 2 , N) { exgcd (R [ 1 ], R [i]를, X, Y); 경우 ((a [I] -a [ 1 ]) %의 최대 공약수를 == 0 ) { X * = (a [I] -a [ 1 ]) /GCD; Y = R [I] / GCD; X = (X %의 및 y + y를) %의 Y; A [ 1 ] + = R [ 1 ] * X; R [ 1 ] = R [ 1 ] * R [I]는 / GCD; } 다른 { O ( - 1 ), P ( " \ n을 ' ); 플래그 = 1 ; 휴식 ; } } 경우 (! 플래그) O (a [ 1 ]), P (' \ n을 ' ); } 반환 0 ; }