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:
Control the Session with Spring Security
Practical Java Examples of the Big O Notation
Guide to Java OutputStream
Giới thiệu Swagger – Công cụ document cho RESTfull APIs
Redirect to Different Pages after Login with Spring Security
Chuyển đổi từ HashMap sang ArrayList
Java Program to Implement Hash Tables with Double Hashing
Guide to Spring @Autowired
Spring Boot: Customize the Jackson ObjectMapper
HttpClient 4 – Send Custom Cookie
Java Program to Implement DelayQueue API
Removing all Nulls from a List in Java
Concatenating Strings In Java
Tính kế thừa (Inheritance) trong java
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Custom Thread Pools In Java 8 Parallel Streams
Java Program to Implement Maximum Length Chain of Pairs
Java Program to implement Array Deque
Using Spring @ResponseStatus to Set HTTP Status Code
The Dining Philosophers Problem in Java
Java Program to Print only Odd Numbered Levels of a Tree
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Java 8 Stream API Analogies in Kotlin
Send email with JavaMail
Spring Data JPA @Modifying Annotation
Java Program to Implement Hash Tables Chaining with Binary Trees
A Comparison Between Spring and Spring Boot
How to Iterate Over a Stream With Indices
Compact Strings in Java 9
Marker Interface trong Java
Apache Commons Collections BidiMap
Creating a Generic Array in Java