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 CopyOnWriteArrayList API
Java Program to Create a Random Graph Using Random Edge Generation
Custom Error Pages with Spring MVC
Java Program to Find Path Between Two Nodes in a Graph
Multi Dimensional ArrayList in Java
Java Program to Check Cycle in a Graph using Topological Sort
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Java Program to Implement Weight Balanced Tree
Java Program to Check whether Directed Graph is Connected using DFS
Basic Authentication with the RestTemplate
Consumer trong Java 8
Xử lý ngoại lệ trong Java (Exception Handling)
Control Structures in Java
Java Program to Describe the Representation of Graph using Incidence Matrix
New Stream Collectors in Java 9
A Guide to Spring Cloud Netflix – Hystrix
Java Program to Implement Hash Trie
Java Program to Solve the 0-1 Knapsack Problem
Java Program to Show the Duality Transformation of Line and Point
Creating Docker Images with Spring Boot
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Giới thiệu JDBC Connection Pool
Updating your Password
Exploring the Spring 5 WebFlux URL Matching
Spring REST with a Zuul Proxy
Guide to the Synchronized Keyword in Java
Java Program to Implement Bloom Filter
Vector trong Java
Java Program to Implement Fibonacci Heap
Java Program to Implement Min Hash
Java Program to Perform Stooge Sort
Java Program to Implement Fermat Factorization Algorithm