Created
June 10, 2017 17:22
-
-
Save jshinevar/6a5276bad1797d941344d66ba2b3cc88 to your computer and use it in GitHub Desktop.
Euclidean GCD
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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