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 Quick Sort on Large Number of Elements
Compact Strings in Java 9
Introduction to Spring Data JPA
Spring Security Registration – Resend Verification Email
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Overview of the java.util.concurrent
@Before vs @BeforeClass vs @BeforeEach vs @BeforeAll
Generating Random Numbers in a Range in Java
Guava Collections Cookbook
Getting Started with Stream Processing with Spring Cloud Data Flow
Disable Spring Data Auto Configuration
Java Multi-line String
Java Program to Implement Knight’s Tour Problem
HTTP Authentification and CGI/Servlet
A Guide to the finalize Method in Java
Injecting Prototype Beans into a Singleton Instance in Spring
Java Program to Implement Selection Sort
Stack Memory and Heap Space in Java
Java Program to Implement Flood Fill Algorithm
Java Program to Implement the MD5 Algorithm
So sánh Array và ArrayList trong Java
Java Program to Implement Ternary Search Tree
Map Interface trong java
Inheritance with Jackson
Getting Started with GraphQL and Spring Boot
HttpClient 4 Cookbook
Thực thi nhiều tác vụ cùng lúc như thế nào trong Java?
Java Program to Implement Binary Search Tree
Java Program to Describe the Representation of Graph using Adjacency List
Number Formatting in Java
Spring Boot - Building RESTful Web Services
Exploring the New Spring Cloud Gateway