From 6f61e2792c9d0c343db19e96e1cee0a4004e85dd Mon Sep 17 00:00:00 2001 From: Swati Kumari Date: Sat, 3 Jan 2026 09:48:34 +0530 Subject: [PATCH 1/4] Add GCDUsingEuclid class to compute GCD Implemented the Euclidean algorithm for GCD calculation. --- .../thealgorithms/maths/GCDUsingEuclid.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/java/com/thealgorithms/maths/GCDUsingEuclid.java diff --git a/src/main/java/com/thealgorithms/maths/GCDUsingEuclid.java b/src/main/java/com/thealgorithms/maths/GCDUsingEuclid.java new file mode 100644 index 000000000000..36219bfd951b --- /dev/null +++ b/src/main/java/com/thealgorithms/maths/GCDUsingEuclid.java @@ -0,0 +1,38 @@ +package com.thealgorithms.maths; + +/** + * Euclidean algorithm to compute the Greatest Common Divisor (GCD). + * Wikipedia: https://en.wikipedia.org/wiki/Euclidean_algorithm + */ +public final class GCDUsingEuclid { + + private GCDUsingEuclid() { + // Utility class + } + + /** + * Computes GCD of two integers using Euclidean algorithm. + * + * @param a first integer + * @param b second integer + * @return gcd(a, b) + */ + public static int gcd(int a, int b) { + a = Math.abs(a); + b = Math.abs(b); + + if (a == 0) { + return b; + } + if (b == 0) { + return a; + } + + while (b != 0) { + int remainder = a % b; + a = b; + b = remainder; + } + return a; + } +} From 4b6a44d3a52f2274743834f00b212bebee6bb02f Mon Sep 17 00:00:00 2001 From: Swati Kumari Date: Sat, 3 Jan 2026 09:49:50 +0530 Subject: [PATCH 2/4] Implement unit tests for GCDUsingEuclid Add unit tests for GCDUsingEuclid class covering positive, zero, and negative numbers. --- .../maths/GCDUsingEuclidTest.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java diff --git a/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java new file mode 100644 index 000000000000..e2eb1a28c278 --- /dev/null +++ b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java @@ -0,0 +1,25 @@ +package com.thealgorithms.maths; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + +class GCDUsingEuclidTest { + + @Test + void testPositiveNumbers() { + assertEquals(6, GCDUsingEuclid.gcd(54, 24)); + assertEquals(1, GCDUsingEuclid.gcd(17, 13)); + } + + @Test + void testWithZero() { + assertEquals(5, GCDUsingEuclid.gcd(0, 5)); + assertEquals(7, GCDUsingEuclid.gcd(7, 0)); + } + + @Test + void testNegativeNumbers() { + assertEquals(4, GCDUsingEuclid.gcd(-8, 12)); + assertEquals(9, GCDUsingEuclid.gcd(-9, -18)); + } +} From 159a709df963be8d210600dd7b07ab538b81ad7d Mon Sep 17 00:00:00 2001 From: Swati Kumari Date: Sat, 3 Jan 2026 10:15:14 +0530 Subject: [PATCH 3/4] Reorder import statement for assertEquals --- src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java index e2eb1a28c278..0a91d58532f9 100644 --- a/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java +++ b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java @@ -1,8 +1,9 @@ package com.thealgorithms.maths; -import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; + class GCDUsingEuclidTest { @Test From 132dbd626a960f064316bc459f092babdf7cb053 Mon Sep 17 00:00:00 2001 From: Swati Kumari Date: Sat, 3 Jan 2026 10:45:47 +0530 Subject: [PATCH 4/4] Update GCDUsingEuclidTest.java --- .../java/com/thealgorithms/maths/GCDUsingEuclidTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java index 0a91d58532f9..4ae98528ece7 100644 --- a/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java +++ b/src/test/java/com/thealgorithms/maths/GCDUsingEuclidTest.java @@ -1,10 +1,10 @@ package com.thealgorithms.maths; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; -class GCDUsingEuclidTest { +import org.junit.jupiter.api.Test; + +public class GCDUsingEuclidTest { @Test void testPositiveNumbers() {