This is a Java Program to Implement Stein GCD Algorithm. The binary GCD algorithm, also known as Stein’s algorithm, is an algorithm that computes the greatest common divisor of two nonnegative integers. Stein’s algorithm uses simpler arithmetic operations than the conventional Euclidean algorithm. It replaces division with arithmetic shifts, comparisons and subtraction.
Here is the source code of the Java Program to Implement Stein GCD Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/**
** Java Program to Implement Stein GCD Algorithm
**/
import java.util.Scanner;
/** Class SteinGcd **/
public class SteinGcd
{
/** Function to calculate gcd **/
public int gcd(int u, int v)
{
int shift;
if (u == 0)
return v;
if (v == 0)
return u;
for (shift = 0; ((u | v) & 1) == 0; ++shift)
{
u >>= 1;
v >>= 1;
}
while ((u & 1) == 0)
u >>= 1;
do
{
while ((v & 1) == 0)
v >>= 1;
if (u > v)
{
int t = v;
v = u;
u = t;
}
v = v - u;
} while (v != 0);
return u << shift;
}
/** Main function **/
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Stein GCD Algorithm Test\n");
/** Make an object of SteingGcd class **/
SteinGcd sg = new SteinGcd();
/** Accept two integers **/
System.out.println("Enter two integer numbers\n");
int n1 = scan.nextInt();
int n2 = scan.nextInt();
/** Call function gcd of class SteinGcd **/
int gcd = sg.gcd(n1, n2);
System.out.println("GCD of "+ n1 +" and "+ n2 +" = "+ gcd);
}
}
Output:
Stein GCD Algorithm Test Enter two integer numbers 32984 10013 GCD of 32984 and 10013 = 589
Related posts:
The Difference Between map() and flatMap()
Lớp lồng nhau trong java (Java inner class)
Comparing Arrays in Java
Java 8 StringJoiner
Programmatic Transaction Management in Spring
Spring Boot Tutorial – Bootstrap a Simple Application
Guava Collections Cookbook
Using Java Assertions
Hướng dẫn Java Design Pattern – Visitor
Java program to Implement Tree Set
Runnable vs. Callable in Java
Spring Boot - Twilio
Dynamic Proxies in Java
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Optional trong Java 8
Hướng dẫn sử dụng Java Generics
Java Program to Implement TreeSet API
Java Program to Compute the Area of a Triangle Using Determinants
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
An Intro to Spring Cloud Contract
Java Program to Perform Searching Using Self-Organizing Lists
Spring NoSuchBeanDefinitionException
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Logging a Reactive Sequence
Consumer trong Java 8
Java Program to Implement CountMinSketch
Testing an OAuth Secured API with Spring MVC
Java Program to Implement Lloyd’s Algorithm
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement AttributeList API
Quick Intro to Spring Cloud Configuration
Java Program to Find Maximum Element in an Array using Binary Search