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:
Integer Constant Pool trong Java
A Guide to the ResourceBundle
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
Java Program to Use rand and srand Functions
Java Program to Implement Circular Doubly Linked List
Understanding Memory Leaks in Java
Java Program to Implement Triply Linked List
So sánh HashSet, LinkedHashSet và TreeSet trong Java
Java Program to Find the GCD and LCM of two Numbers
Lớp Collections trong Java (Collections Utility Class)
Configuring a DataSource Programmatically in Spring Boot
Introduction to Thread Pools in Java
Java Program to Implement Adjacency List
Java Program to Implement Segment Tree
Java 8 and Infinite Streams
Java Program to Implement Maximum Length Chain of Pairs
Java Program to Implement Pagoda
Inject Parameters into JUnit Jupiter Unit Tests
Check If Two Lists are Equal in Java
Java Switch Statement
Guide to WeakHashMap in Java
Kết hợp Java Reflection và Java Annotations
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Jackson – Unmarshall to Collection/Array
Java Program to Implement Interpolation Search Algorithm
Tạo chương trình Java đầu tiên sử dụng Eclipse
Serialize Only Fields that meet a Custom Criteria with Jackson
Java Program to Compare Binary and Sequential Search
Java Program to Implement Red Black Tree
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Object cloning trong java
Number Formatting in Java