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:
Copy a List to Another List in Java
Java Program to Implement Red Black Tree
Java Program to Implement Binary Search Tree
Java Program to Implement Warshall Algorithm
Java Program to Find Number of Articulation points in a Graph
Java Program to Perform Stooge Sort
Spring Boot - Twilio
Java Program to Implement WeakHashMap API
Java – InputStream to Reader
Filtering and Transforming Collections in Guava
Java Program to Implement Disjoint Set Data Structure
Converting String to Stream of chars
Introduction to Using Thymeleaf in Spring
Java Program to Find the Mode in a Data Set
Removing Elements from Java Collections
Tiêu chuẩn coding trong Java (Coding Standards)
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Java program to Implement Tree Set
A Guide to the Java LinkedList
What is a POJO Class?
A Guide to TreeSet in Java
Giới thiệu Google Guice – Dependency injection (DI) framework
An Introduction to Java.util.Hashtable Class
Spring Boot - Actuator
Spring Boot - CORS Support
Batch Processing with Spring Cloud Data Flow
New Features in Java 13
Giới thiệu Json Web Token (JWT)
Java – Write a Reader to File
Introduction to Spring Cloud Netflix – Eureka
Simple Single Sign-On with Spring Security OAuth2
Kiểu dữ liệu Ngày Giờ (Date Time) trong java