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:
Allow user:password in URL
Java Program to Implement D-ary-Heap
Java Program to Compute DFT Coefficients Directly
More Jackson Annotations
SOAP Web service: Authentication trong JAX-WS
Biến trong java
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Guava – Join and Split Collections
Java – Write to File
Java Program to Perform Naive String Matching
Working with Network Interfaces in Java
Java Program to Implement Hash Tables with Linear Probing
Implementing a Binary Tree in Java
Java Program to Describe the Representation of Graph using Adjacency Matrix
Introduction to Spring Data JDBC
Java Program to Solve a Matching Problem for a Given Specific Case
Java Program to Implement Booth Algorithm
Guide to java.util.Formatter
Java Program to Implement Interpolation Search Algorithm
Encode/Decode to/from Base64
Guava Collections Cookbook
Logging a Reactive Sequence
A Quick JUnit vs TestNG Comparison
Apache Tiles Integration with Spring MVC
Java Program to Use Boruvka’s Algorithm to Find the Minimum Spanning Tree
Working with Kotlin and JPA
Removing all Nulls from a List in Java
Stack Memory and Heap Space in Java
Java Program to Perform Deletion in a BST
Java Program to Implement Min Heap
Java Program to Perform Sorting Using B-Tree
Hướng dẫn Java Design Pattern – Facade