summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AlgoDesignAndTechniqueEdxJava/sources/GCD.java24
-rw-r--r--AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java33
2 files changed, 57 insertions, 0 deletions
diff --git a/AlgoDesignAndTechniqueEdxJava/sources/GCD.java b/AlgoDesignAndTechniqueEdxJava/sources/GCD.java
new file mode 100644
index 0000000..5e29e4f
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxJava/sources/GCD.java
@@ -0,0 +1,24 @@
+import java.util.Scanner;
+
+public class GCD {
+
+ public static int getGCD(int a, int b) {
+ if (b == 0) {
+ return a;
+ }
+
+ if (b > a) {
+ return getGCD(b, a);
+ } else {
+ return getGCD(b, a % b);
+ }
+ }
+
+ public static void main(String args[]) {
+ Scanner in = new Scanner(System.in);
+ int a = in.nextInt();
+ int b = in.nextInt();
+
+ System.out.println(getGCD(a, b));
+ }
+}
diff --git a/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java b/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java
new file mode 100644
index 0000000..1c8fedd
--- /dev/null
+++ b/AlgoDesignAndTechniqueEdxJava/tests/GCDTest.java
@@ -0,0 +1,33 @@
+import static org.junit.jupiter.api.Assertions.*;
+import org.junit.jupiter.api.Test;
+
+public class GCDTest {
+ @Test
+ void testGCD1() {
+ assertEquals(1, GCD.getGCD(18, 35));
+ }
+ @Test
+ void testGCD2() {
+ assertEquals(17657, GCD.getGCD(28851538, 1183019));
+ }
+
+ @Test
+ void testGCD3() {
+ assertEquals(7, GCD.getGCD(1344, 217));
+ }
+
+ @Test
+ void testGCD4() {
+ assertEquals(1344, GCD.getGCD(1344, 1344));
+ }
+
+ @Test
+ void testGCD5() {
+ assertEquals(4, GCD.getGCD(14159572, 63967072));
+ }
+
+ @Test
+ void testGCD6() {
+ assertEquals(4, GCD.getGCD(63967072,14159572));
+ }
+}