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:
So sánh ArrayList và LinkedList trong Java
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Add Multiple Items to an Java ArrayList
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Java Byte Array to InputStream
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm
Java Program to Implement DelayQueue API
Java Program to Generate All Pairs of Subsets Whose Union Make the Set
Java Program to Perform Searching in a 2-Dimension K-D Tree
Java Program to Implement Cubic convergence 1/pi Algorithm
Quick Guide to Spring Controllers
Java Program to Implement Red Black Tree
Java Program to Implement Singly Linked List
Format ZonedDateTime to String
Prevent Brute Force Authentication Attempts with Spring Security
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Implementing a Binary Tree in Java
Java Program to Implement AttributeList API
New Features in Java 10
List Interface trong Java
Spring Security 5 – OAuth2 Login
Encode/Decode to/from Base64
Java – Get Random Item/Element From a List
Comparing Objects in Java
Spring Boot - Hystrix
Java Program to Implement WeakHashMap API
Tính trừu tượng (Abstraction) trong Java
Spring Security 5 for Reactive Applications
A Quick Guide to Using Keycloak with Spring Boot
Spring Boot Annotations
Deploy a Spring Boot WAR into a Tomcat Server
Converting a Stack Trace to a String in Java