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:
Getting Started with Custom Deserialization in Jackson
Java Program to Implement Fenwick Tree
Bootstrapping Hibernate 5 with Spring
Guide to Spring Cloud Kubernetes
Map Serialization and Deserialization with Jackson
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Mệnh đề if-else trong java
Java Program to Check Multiplicability of Two Matrices
A Guide to the finalize Method in Java
Java Program to Perform Naive String Matching
Using Java Assertions
Guide to Escaping Characters in Java RegExps
Handle EML file with JavaMail
Spring AMQP in Reactive Applications
The StackOverflowError in Java
Java Program to Implement Self Balancing Binary Search Tree
Java Program to Find Minimum Element in an Array using Linear Search
Java Program to Implement Tarjan Algorithm
New Features in Java 13
Java Program to Implement Park-Miller Random Number Generation Algorithm
Java Program to Implement ConcurrentLinkedQueue API
Spring 5 WebClient
Java Program to Implement Rolling Hash
Extra Login Fields with Spring Security
Java Program to Implement Skew Heap
Java – Write to File
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Spring Boot - Service Components
Model, ModelMap, and ModelAndView in Spring MVC
Java Program to Check the Connectivity of Graph Using BFS
Testing in Spring Boot
Java Program to Implement Floyd Cycle Algorithm