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:
Immutable Objects in Java
Mệnh đề Switch-case trong java
Giới thiệu Java 8
Guide to Java 8’s Collectors
Daemon Threads in Java
Spring Boot - Build Systems
Java Program to Implement Shell Sort
Java Program to add two large numbers using Linked List
Lớp Properties trong java
Java Program to Implement Radix Sort
Sorting in Java
Uploading MultipartFile with Spring RestTemplate
Giới thiệu JDBC Connection Pool
Create Java Applet to Simulate Any Sorting Technique
Reactive WebSockets with Spring 5
A Guide to ConcurrentMap
Giới thiệu Design Patterns
Java Program to Implement Iterative Deepening
Spring MVC and the @ModelAttribute Annotation
Introduction to Netflix Archaius with Spring Cloud
Java Program to Implement LinkedHashMap API
Java Program to Perform Deletion in a BST
Spring Webflux with Kotlin
Ignore Null Fields with Jackson
Hướng dẫn Java Design Pattern – Template Method
Spring Boot - Rest Controller Unit Test
Comparing Dates in Java
Spring Webflux and CORS
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Quick Guide to @RestClientTest in Spring Boot
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Implement Self Balancing Binary Search Tree