This is a Java Program to Implement Fermat Factorization Algorithm. Fermat’s factorization method, named after Pierre de Fermat, is based on the representation of an odd integer as the difference of two squares: N = a2 – b2. That difference is algebraically factorable as (a + b)(a – b); if neither factor equals one, it is a proper factorization of N.
Here is the source code of the Java Program to Implement Fermat Factorization Algorithm. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/** ** Java Program to implement Fermat Factorization Algorithm **/ import java.util.Scanner; public class FermatFactorization { /** Fermat factor **/ public void FermatFactor(long N) { long a = (long) Math.ceil(Math.sqrt(N)); long b2 = a * a - N; while (!isSquare(b2)) { a++; b2 = a * a - N; } long r1 = a - (long)Math.sqrt(b2); long r2 = N / r1; display(r1, r2); } /** function to display roots **/ public void display(long r1, long r2) { System.out.println("\nRoots = "+ r1 +" , "+ r2); } /** function to check if N is a perfect square or not **/ public boolean isSquare(long N) { long sqr = (long) Math.sqrt(N); if (sqr * sqr == N || (sqr + 1) * (sqr + 1) == N) return true; return false; } /** main method **/ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Fermat Factorization Test\n"); System.out.println("Enter odd number"); long N = scan.nextLong(); FermatFactorization ff = new FermatFactorization(); ff.FermatFactor(N); } }
Output:
Fermat Factorization Test Enter odd number 5959 Roots = 59 , 101 Fermat Factorization Test Enter odd number 432633 Roots = 499 , 867
Related posts:
Extract links from an HTML page
Default Password Encoder in Spring Security 5
Use Liquibase to Safely Evolve Your Database Schema
Inheritance and Composition (Is-a vs Has-a relationship) in Java
Removing all Nulls from a List in Java
Spring Security – security none, filters none, access permitAll
Java Program to Implement Hash Tables with Double Hashing
XML-Based Injection in Spring
An Intro to Spring Cloud Task
Tạo ứng dụng Java RESTful Client với thư viện OkHttp
Introduction to PCollections
Cơ chế Upcasting và Downcasting trong java
Các nguyên lý thiết kế hướng đối tượng – SOLID
Java Program to Implement SimpeBindings API
Guide to Character Encoding
Check If a String Is Numeric in Java
Java Program to Implement Branch and Bound Method to Perform a Combinatorial Search
Java Program to Implement Binary Tree
Database Migrations with Flyway
Exploring the Spring 5 WebFlux URL Matching
Java Program to Implement Horner Algorithm
Java Program to Implement Tarjan Algorithm
Giới thiệu SOAP UI và thực hiện test Web Service
Setting a Request Timeout for a Spring REST API
Hướng dẫn Java Design Pattern – Abstract Factory
How to Implement Caching using Adonis.js 5
A Guide to @RepeatedTest in Junit 5
Adding a Newline Character to a String in Java
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Implement Knight’s Tour Problem
Get the workstation name or IP
Java Program to Implement Min Hash