refactoring
This commit is contained in:
parent
aa7b95e6a1
commit
88444addaa
|
@ -4,26 +4,29 @@ public class GCDImplementation {
|
||||||
|
|
||||||
public static int gcdByBruteForce(int n1, int n2) {
|
public static int gcdByBruteForce(int n1, int n2) {
|
||||||
int gcd = 1;
|
int gcd = 1;
|
||||||
for (int i = 1; i <= n1 && i <= n2; i++)
|
for (int i = 1; i <= n1 && i <= n2; i++) {
|
||||||
if (n1 % i == 0 && n2 % i == 0)
|
if (n1 % i == 0 && n2 % i == 0) {
|
||||||
gcd = i;
|
gcd = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
return gcd;
|
return gcd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int gcdByEuclidsAlgorithm(int n1, int n2) {
|
public static int gcdByEuclidsAlgorithm(int n1, int n2) {
|
||||||
if (n2 == 0)
|
if (n2 == 0) {
|
||||||
return n1;
|
return n1;
|
||||||
|
}
|
||||||
return gcdByEuclidsAlgorithm(n2, n1 % n2);
|
return gcdByEuclidsAlgorithm(n2, n1 % n2);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int gcdBySteinsAlgorithm(int n1, int n2) {
|
public static int gcdBySteinsAlgorithm(int n1, int n2) {
|
||||||
|
if (n1 == 0) {
|
||||||
if (n1 == 0)
|
|
||||||
return n2;
|
return n2;
|
||||||
|
}
|
||||||
|
|
||||||
if (n2 == 0)
|
if (n2 == 0) {
|
||||||
return n1;
|
return n1;
|
||||||
|
}
|
||||||
|
|
||||||
int n;
|
int n;
|
||||||
for (n = 0; ((n1 | n2) & 1) == 0; n++) {
|
for (n = 0; ((n1 | n2) & 1) == 0; n++) {
|
||||||
|
@ -31,12 +34,14 @@ public class GCDImplementation {
|
||||||
n2 >>= 1;
|
n2 >>= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((n1 & 1) == 0)
|
while ((n1 & 1) == 0) {
|
||||||
n1 >>= 1;
|
n1 >>= 1;
|
||||||
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
while ((n2 & 1) == 0)
|
while ((n2 & 1) == 0) {
|
||||||
n2 >>= 1;
|
n2 >>= 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (n1 > n2) {
|
if (n1 > n2) {
|
||||||
int temp = n1;
|
int temp = n1;
|
||||||
|
@ -45,7 +50,6 @@ public class GCDImplementation {
|
||||||
}
|
}
|
||||||
n2 = (n2 - n1);
|
n2 = (n2 - n1);
|
||||||
} while (n2 != 0);
|
} while (n2 != 0);
|
||||||
|
|
||||||
return n1 << n;
|
return n1 << n;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue