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:
Hướng dẫn sử dụng Java Annotation
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Java Program to Check Whether Graph is DAG
Spring Data Java 8 Support
Bootstrap a Web Application with Spring 5
Spring @RequestParam Annotation
Java Program to Implement Variable length array
Spring WebClient Requests with Parameters
Remove All Occurrences of a Specific Value from a List
Java CyclicBarrier vs CountDownLatch
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Check if a Matrix is Invertible
Spring Boot - Creating Docker Image
Java Program to Implement Ternary Search Algorithm
Java Program to Implement PriorityQueue API
Send an email with an attachment
Spring MVC Tutorial
A Guide to TreeSet in Java
Java Program to Perform Matrix Multiplication
String Operations with Java Streams
Apache Commons Collections SetUtils
Multi Dimensional ArrayList in Java
Java Program to Implement Counting Sort
The Registration API becomes RESTful
Inheritance with Jackson
Java Program to Generate All Possible Combinations Out of a, b, c, d, e
HttpClient 4 – Follow Redirects for POST
An Introduction to Java.util.Hashtable Class
Java Program to Show the Duality Transformation of Line and Point
Hướng dẫn Java Design Pattern – Dependency Injection
Spring Data JPA and Null Parameters
Apache Tiles Integration with Spring MVC