This is a Java Program to Implement Fermat Primality Test Algorithm. Fermat Primality Test is an algorithm which is used to determine if a given number is prime or not.
Here is the source code of the Java Program to Implement Fermat Primality Test 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 Primality Test Algorithm
**/
import java.util.Scanner;
import java.util.Random;
/** Class FermatPrimality **/
public class FermatPrimality
{
/** Function to check if prime or not **/
public boolean isPrime(long n, int iteration)
{
/** base case **/
if (n == 0 || n == 1)
return false;
/** base case - 2 is prime **/
if (n == 2)
return true;
/** an even number other than 2 is composite **/
if (n % 2 == 0)
return false;
Random rand = new Random();
for (int i = 0; i < iteration; i++)
{
long r = Math.abs(rand.nextLong());
long a = r % (n - 1) + 1;
if (modPow(a, n - 1, n) != 1)
return false;
}
return true;
}
/** Function to calculate (a ^ b) % c **/
public long modPow(long a, long b, long c)
{
long res = 1;
for (int i = 0; i < b; i++)
{
res *= a;
res %= c;
}
return res % c;
}
/** Main function **/
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Fermat Primality Algorithm Test\n");
/** Make an object of FermatPrimality class **/
FermatPrimality fp = new FermatPrimality();
/** Accept number **/
System.out.println("Enter number\n");
long num = scan.nextLong();
/** Accept number of iterations **/
System.out.println("\nEnter number of iterations");
int k = scan.nextInt();
/** check if prime **/
boolean prime = fp.isPrime(num, k);
if (prime)
System.out.println("\n"+ num +" is prime");
else
System.out.println("\n"+ num +" is composite");
}
}
Output:
Fermat Primality Algorithm Test Enter number 999983 Enter number of iterations 2 999983 is prime
Related posts:
Java Program to Implement Gale Shapley Algorithm
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Comparing Arrays in Java
Java Program to implement Bit Set
Mockito and JUnit 5 – Using ExtendWith
Java Program to Find MST (Minimum Spanning Tree) using Kruskal’s Algorithm
Java Program to Encode a Message Using Playfair Cipher
What is a POJO Class?
Java Program to Generate Randomized Sequence of Given Range of Numbers
Toán tử trong java
The DAO with Spring and Hibernate
Java Program to Implement LinkedBlockingDeque API
Concurrent Test Execution in Spring 5
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
Giới thiệu HATEOAS
Weak References in Java
Disable DNS caching
Giới thiệu Java 8
Java Program to Implement Sorted Circularly Singly Linked List
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Spring Boot - Quick Start
Hướng dẫn Java Design Pattern – Memento
Circular Dependencies in Spring
Java Program to Find k Numbers Closest to Median of S, Where S is a Set of n Numbers
Spring MVC Content Negotiation
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Java Program to Implement JobStateReasons API
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Implement Sorting of Less than 100 Numbers in O(n) Complexity
Java Program to Implement Quick Hull Algorithm to Find Convex Hull
Java program to Implement Tree Set
Add Multiple Items to an Java ArrayList