Skip to content

Instantly share code, notes, and snippets.

@jshinevar
Created June 10, 2017 17:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jshinevar/6a5276bad1797d941344d66ba2b3cc88 to your computer and use it in GitHub Desktop.
Save jshinevar/6a5276bad1797d941344d66ba2b3cc88 to your computer and use it in GitHub Desktop.
Euclidean GCD
import java.util.Scanner;
/**
* Created by James Shinevar on 6/10/17.
* james.shinevar@gmail.com
* http://jamesshinevar.com
*/
public class GCDMain {
public static long FinalGCD;
{
FinalGCD = 0;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter your first number:");
long FirstNumber = input.nextLong();
input.nextLine();
System.out.println("Please enter your second number:");
long SecondNumber = input.nextLong();
input.nextLine();
FastGCD(FirstNumber, SecondNumber);
System.out.println("FastGCD is: " + FinalGCD);
}
private static void FastGCD(long FirstNumber, long SecondNumber) {
if (SecondNumber > FirstNumber) {
long largerNumber = SecondNumber;
SecondNumber = FirstNumber;
FirstNumber = largerNumber;
}
if (FirstNumber == 0) {
FinalGCD = SecondNumber;
} else if (SecondNumber == 0) {
FinalGCD = FirstNumber;
} else {
long ModulusResult = FirstNumber % SecondNumber;
FirstNumber = SecondNumber;
SecondNumber = ModulusResult;
FastGCD(FirstNumber, SecondNumber);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment