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:
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement Attribute API
Array to String Conversions
Introduction to Spring Security Expressions
Recommended Package Structure of a Spring Boot Project
Configuring a DataSource Programmatically in Spring Boot
Java Program to Find the Minimum value of Binary Search Tree
Handling Errors in Spring WebFlux
ThreadPoolTaskExecutor corePoolSize vs. maxPoolSize
ETL with Spring Cloud Data Flow
New Features in Java 11
A Guide to HashSet in Java
Làm thế nào tạo instance của một class mà không gọi từ khóa new?
The Modulo Operator in Java
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Implement ScapeGoat Tree
Using Optional with Jackson
How to Read a File in Java
Java Program to Implement Sieve Of Eratosthenes
Java Program to Construct an Expression Tree for an Infix Expression
Base64 encoding và decoding trong Java 8
Java Program to Perform Finite State Automaton based Search
Guide to Java 8 groupingBy Collector
Java Program to Implement VList
Using the Not Operator in If Conditions in Java
How to Convert List to Map in Java
Generate Spring Boot REST Client with Swagger
Java – Try with Resources
Java Program to Implement Direct Addressing Tables
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Implement Hash Tables
Introduction to Project Reactor Bus