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 Perform the Unique Factorization of a Given Number
Java Program to Perform the Shaker Sort
Java – InputStream to Reader
Spring Boot with Multiple SQL Import Files
RegEx for matching Date Pattern in Java
Rest Web service: Filter và Interceptor với Jersey 2.x (P2)
Working with Tree Model Nodes in Jackson
Arrays.asList vs new ArrayList(Arrays.asList())
Java Program to Implement Find all Cross Edges in a Graph
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
Java Program to Represent Graph Using Linked List
Java Program to Construct a Random Graph by the Method of Random Edge Selection
Rate Limiting in Spring Cloud Netflix Zuul
New Features in Java 15
Lập trình mạng với java
Java Program to Implement Quick Sort with Given Complexity Constraint
Java Program to Implement Bresenham Line Algorithm
Java Program to Implement Bellman-Ford Algorithm
So sánh Array và ArrayList trong Java
Java Program to Check if a Point d lies Inside or Outside a Circle Defined by Points a, b, c in a Pl...
Spring Boot - Building RESTful Web Services
Java InputStream to String
Java Program to Implement Uniform-Cost Search
Java Program to Implement Repeated Squaring Algorithm
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Java Byte Array to InputStream
Limiting Query Results with JPA and Spring Data JPA
Period and Duration in Java
Java Program to Implement Binary Search Tree
Spring’s RequestBody and ResponseBody Annotations
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Spring 5 Testing with @EnabledIf Annotation