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 Uniform-Cost Search
Base64 encoding và decoding trong Java 8
Java Program to Check if a Given Binary Tree is an AVL Tree or Not
Java Program to Perform Sorting Using B-Tree
Auditing with JPA, Hibernate, and Spring Data JPA
Comparing getPath(), getAbsolutePath(), and getCanonicalPath() in Java
Shuffling Collections In Java
Java Program to Implement Euclid GCD Algorithm
Java Byte Array to InputStream
Java Program to Implement Skip List
Spring Security – security none, filters none, access permitAll
A Guide to LinkedHashMap in Java
New Features in Java 8
Java TreeMap vs HashMap
Java Program to Implement Variable length array
Spring Cloud AWS – RDS
Implementing a Runnable vs Extending a Thread
Spring Boot - Rest Template
Converting between an Array and a List in Java
Tips for dealing with HTTP-related problems
Spring Boot - Creating Docker Image
Get the workstation name or IP
Spring Security Registration – Resend Verification Email
Guide to UUID in Java
Giới thiệu Google Guice – Dependency injection (DI) framework
Java Program to Perform integer Partition for a Specific Case
Java Program to Implement Randomized Binary Search Tree
Java Program to Implement ArrayDeque API
Java Program to Implement Stack using Linked List
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm
Iterable to Stream in Java
Java Program to Implement Shoelace Algorithm