update
This commit is contained in:
parent
1f1ad49427
commit
6f050a029e
2496 changed files with 37609 additions and 3031 deletions
|
|
@ -1,6 +1,30 @@
|
|||
public static long gcd(long a, long b){
|
||||
if(a == 0) return b;
|
||||
if(b == 0) return a;
|
||||
if(a > b) return gcd(b, a % b);
|
||||
return gcd(a, b % a);
|
||||
public static long gcd(long u, long v){
|
||||
long t, k;
|
||||
|
||||
if (v == 0) return u;
|
||||
|
||||
u = Math.abs(u);
|
||||
v = Math.abs(v);
|
||||
if (u < v){
|
||||
t = u;
|
||||
u = v;
|
||||
v = t;
|
||||
}
|
||||
|
||||
for(k = 1; (u & 1) == 0 && (v & 1) == 0; k <<= 1){
|
||||
u >>= 1; v >>= 1;
|
||||
}
|
||||
|
||||
t = (u & 1) != 0 ? -v : u;
|
||||
while (t != 0){
|
||||
while ((t & 1) == 0) t >>= 1;
|
||||
|
||||
if (t > 0)
|
||||
u = t;
|
||||
else
|
||||
v = -t;
|
||||
|
||||
t = u - v;
|
||||
}
|
||||
return u * k;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue