File tree Expand file tree Collapse file tree 1 file changed +15
-4
lines changed
Expand file tree Collapse file tree 1 file changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -22,16 +22,27 @@ private static long[] inv_gcd(long a, long b){
2222 return new long []{s ,m0 };
2323 }
2424
25- public static long gcd (long a , long b ){
26- a = java .lang .Math .abs (a );
27- b = java .lang .Math .abs (b );
28- return inv_gcd (a , b )[0 ];
25+ public static long gcd (long ... a ){
26+ if (a .length == 0 ) return 0 ;
27+ long r = java .lang .Math .abs (a [0 ]);
28+ for (int i =1 ; i <a .length ; i ++){
29+ r = inv_gcd (r , java .lang .Math .abs (a [i ]))[0 ];
30+ }
31+ return r ;
2932 }
3033 public static long lcm (long a , long b ){
3134 a = java .lang .Math .abs (a );
3235 b = java .lang .Math .abs (b );
3336 return a / gcd (a ,b ) * b ;
3437 }
38+ public static long lcm (long ... a ){
39+ if (a .length == 0 ) return 0 ;
40+ long r = java .lang .Math .abs (a [0 ]);
41+ for (int i =1 ; i <a .length ; i ++){
42+ r = r / gcd (r ,java .lang .Math .abs (a [i ])) * java .lang .Math .abs (a [i ]);
43+ }
44+ return r ;
45+ }
3546
3647 public static long pow_mod (long x , long n , int m ){
3748 assert n >= 0 ;
You can’t perform that action at this time.
0 commit comments