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:
REST Pagination in Spring
DynamoDB in a Spring Boot Application Using Spring Data
Java Program to Implement Binomial Tree
Giới thiệu Google Guice – Injection, Scope
Java Program to Implement Meldable Heap
A Guide to ConcurrentMap
Java Program to Find Transitive Closure of a Graph
Java Program to Find a Good Feedback Vertex Set
Java Program to Implement Flood Fill Algorithm
Introduction to Using Thymeleaf in Spring
Java Program to Use rand and srand Functions
Java Program to Implement Disjoint Set Data Structure
An Intro to Spring Cloud Vault
Java Program to Find All Pairs Shortest Path
Getting the Size of an Iterable in Java
Spring Data JPA Delete and Relationships
Setting the Java Version in Maven
Spring Boot - Internationalization
Intersection of Two Lists in Java
Java Program to Implement Sparse Array
Versioning a REST API
Spring Boot - Rest Template
HTTP Authentification and CGI/Servlet
Check If a String Is Numeric in Java
Quick Guide to Spring Controllers
Java Program to Implement Hash Tables with Linear Probing
A Guide to Spring Cloud Netflix – Hystrix
Guide to Spring 5 WebFlux
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
A Guide to the ViewResolver in Spring MVC
New Features in Java 15
Array to String Conversions