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:
Guide to Selenium with JUnit / TestNG
Difference Between Wait and Sleep in Java
Hướng dẫn Java Design Pattern – Intercepting Filter
Receive email using IMAP
How to Implement Caching using Adonis.js 5
Java Program to Implement Suffix Array
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Using JWT with Spring Security OAuth
Java Program to Implement Binomial Heap
Java Program to Implement Nth Root Algorithm
Hướng dẫn sử dụng Printing Service trong Java
Java Program to Implement K Way Merge Algorithm
Comparing Strings in Java
Java Program to Implement Bresenham Line Algorithm
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Encode/Decode to/from Base64
Hướng dẫn Java Design Pattern – Proxy
Spring Boot - File Handling
Test a REST API with Java
Jackson vs Gson
TreeSet và sử dụng Comparable, Comparator trong java
Java – Write an InputStream to a File
Overflow and Underflow in Java
A Guide to JUnit 5 Extensions
New Features in Java 14
Guide to Java OutputStream
Checked and Unchecked Exceptions in Java
Quick Guide to @RestClientTest in Spring Boot
Wrapper Classes in Java
Guide to CopyOnWriteArrayList
Java Program to Implement the Monoalphabetic Cypher