mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-26 05:59:22 +08:00
Change project structure to a Maven Java project + Refactor (#2816)
This commit is contained in:

committed by
GitHub

parent
8e533d2617
commit
9fb3364ccc
40
src/main/java/com/thealgorithms/maths/GCDRecursion.java
Normal file
40
src/main/java/com/thealgorithms/maths/GCDRecursion.java
Normal file
@ -0,0 +1,40 @@
|
||||
package com.thealgorithms.maths;
|
||||
|
||||
/**
|
||||
* @author https://github.com/shellhub/
|
||||
*/
|
||||
public class GCDRecursion {
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(gcd(20, 15));
|
||||
/* output: 5 */
|
||||
System.out.println(gcd(10, 8));
|
||||
/* output: 2 */
|
||||
System.out.println(gcd(gcd(10, 5), gcd(5, 10)));
|
||||
/* output: 5 */
|
||||
}
|
||||
|
||||
/**
|
||||
* get greatest common divisor
|
||||
*
|
||||
* @param a the first number
|
||||
* @param b the second number
|
||||
* @return gcd
|
||||
*/
|
||||
public static int gcd(int a, int b) {
|
||||
|
||||
if (a < 0 || b < 0) {
|
||||
throw new ArithmeticException();
|
||||
}
|
||||
|
||||
if (a == 0 || b == 0) {
|
||||
return Math.abs(a - b);
|
||||
}
|
||||
|
||||
if (a % b == 0) {
|
||||
return b;
|
||||
} else {
|
||||
return gcd(b, a % b);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user