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:
New Features in Java 15
Toán tử instanceof trong java
Giới thiệu Google Guice – Binding
Serialization và Deserialization trong java
Spring Security Remember Me
Compare Two JSON Objects with Jackson
Configure a Spring Boot Web Application
Map Interface trong java
Validations for Enum Types
Overview of the java.util.concurrent
Exploring the Spring Boot TestRestTemplate
Spring Data MongoDB Transactions
Introduction to Spring Cloud CLI
What is a POJO Class?
A Quick JUnit vs TestNG Comparison
Java Program to Implement Fenwick Tree
Java Program to Implement Shunting Yard Algorithm
Cơ chế Upcasting và Downcasting trong java
Java Program to Implement Coppersmith Freivald’s Algorithm
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Spring Boot - Google Cloud Platform
Java Program to Implement Ternary Tree
Java Program to Represent Linear Equations in Matrix Form
Prevent Brute Force Authentication Attempts with Spring Security
Giới thiệu java.io.tmpdir
A Guide to Java HashMap
Testing in Spring Boot
Spring Boot - Unit Test Cases
Spring Boot - Build Systems
Java 8 Stream findFirst() vs. findAny()
Examine the internal DNS cache
How to Return 404 with Spring WebFlux