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 the Size of an Iterable in Java
Validate email address exists or not by Java Code
Refactoring Design Pattern với tính năng mới trong Java 8
Java Program to Implement Heap Sort Using Library Functions
Hướng dẫn Java Design Pattern – Adapter
Serialization và Deserialization trong java
Java Program to Implement the One Time Pad Algorithm
Spring Boot - Tomcat Deployment
Java Program to Implement Naor-Reingold Pseudo Random Function
Object Type Casting in Java
Base64 encoding và decoding trong Java 8
Spring MVC Content Negotiation
Guide to System.gc()
Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Solve Tower of Hanoi Problem using Stacks
Reactive WebSockets with Spring 5
The Spring @Controller and @RestController Annotations
Phân biệt JVM, JRE, JDK
Use Liquibase to Safely Evolve Your Database Schema
A Guide to Concurrent Queues in Java
Tính kế thừa (Inheritance) trong java
Spring RestTemplate Error Handling
Java Program to Implement Doubly Linked List
Netflix Archaius with Various Database Configurations
Java Program to Implement Insertion Sort
Lớp lồng nhau trong java (Java inner class)
Java Program to Perform the Shaker Sort
JUnit 5 for Kotlin Developers
Xây dựng ứng dụng Client-Server với Socket trong Java
Guide to the Java Queue Interface
Class Loaders in Java
Java Program to Find the Edge Connectivity of a Graph