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:
Java Program to Find the Nearest Neighbor Using K-D Tree Search
So sánh ArrayList và LinkedList trong Java
Giới thiệu luồng vào ra (I/O) trong Java
Updating your Password
Using the Not Operator in If Conditions in Java
Sử dụng CountDownLatch trong Java
Date Time trong Java 8
HandlerAdapters in Spring MVC
Hashing a Password in Java
Spring Security OAuth Login with WebFlux
Java String Conversions
Java Program to Implement Word Wrap Problem
Java Program to Check whether Undirected Graph is Connected using DFS
Adding Shutdown Hooks for JVM Applications
Functional Interface trong Java 8
Format ZonedDateTime to String
Remove the First Element from a List
Java Program to Implement Ternary Heap
Intro to the Jackson ObjectMapper
Một số từ khóa trong Java
Hướng dẫn Java Design Pattern – Intercepting Filter
Spring Boot Integration Testing with Embedded MongoDB
Spring WebClient Requests with Parameters
File Upload with Spring MVC
Concrete Class in Java
ETL with Spring Cloud Data Flow
A Guide to Apache Commons Collections CollectionUtils
New Features in Java 15
HashMap trong Java hoạt động như thế nào?
How to Break from Java Stream forEach
Guide to Java OutputStream
Convert Character Array to String in Java