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:
Count Occurrences of a Char in a String
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
Java Program to Implement Repeated Squaring Algorithm
The Spring @Controller and @RestController Annotations
Java Program to Find Strongly Connected Components in Graphs
Java Program to Solve the 0-1 Knapsack Problem
Guide to the Java Queue Interface
Spring Boot - Servlet Filter
Giới thiệu Json Web Token (JWT)
Easy Ways to Write a Java InputStream to an OutputStream
RegEx for matching Date Pattern in Java
Disable DNS caching
Auditing with JPA, Hibernate, and Spring Data JPA
Java Program to Implement TreeMap API
Java Program to Check Cycle in a Graph using Graph traversal
Spring Boot - File Handling
Java Program to Implement vector
Spring Boot - Cloud Configuration Client
Object cloning trong java
Lớp Arrarys trong Java (Arrays Utility Class)
Returning Image/Media Data with Spring MVC
So sánh ArrayList và Vector trong Java
Guide to java.util.concurrent.Future
Stack Memory and Heap Space in Java
Convert Hex to ASCII in Java
Request Method Not Supported (405) in Spring
@Lookup Annotation in Spring
Guide to java.util.concurrent.BlockingQueue
Java Program to Generate Random Numbers Using Probability Distribution Function
Exception Handling in Java
Bootstrap a Web Application with Spring 5
Spring Cloud Bus