/
NikolayIvkin
/
TheAlgorithms
Обзор
Документация
Войти
/
NikolayIvkin
/
TheAlgorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/thealgorithms/maths/Prime/PrimeCheck.java
85 строк
2 KB
varada610
Create package prime, matrix and games (#6139)
27 янв 2025, 14:10
Не верифицирован
27 янв 2025, 14:10
4ef0682
Код
Авторство
О чём код?
package com.thealgorithms.maths.Prime; import java.util.Scanner; public final class PrimeCheck { private PrimeCheck() { } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter a number: "); int n = scanner.nextInt(); if (isPrime(n)) { System.out.println("algo1 verify that " + n + " is a prime number"); } else { System.out.println("algo1 verify that " + n + " is not a prime number"); } if (fermatPrimeChecking(n, 20)) { System.out.println("algo2 verify that " + n + " is a prime number"); } else { System.out.println("algo2 verify that " + n + " is not a prime number"); } scanner.close(); } /** * * * Checks if a number is prime or not * * @param n the number * @return {@code true} if {@code n} is prime */ public static boolean isPrime(int n) { if (n == 2) { return true; } if (n < 2 || n % 2 == 0) { return false; } for (int i = 3, limit = (int) Math.sqrt(n); i <= limit; i += 2) { if (n % i == 0) { return false; } } return true; } /** * * * Checks if a number is prime or not * * @param n the number * @return {@code true} if {@code n} is prime */ public static boolean fermatPrimeChecking(int n, int iteration) { long a; int up = n - 2; int down = 2; for (int i = 0; i < iteration; i++) { a = (long) Math.floor(Math.random() * (up - down + 1) + down); if (modPow(a, n - 1, n) != 1) { return false; } } return true; } /** * * * @param a basis * @param b exponent * @param c modulo * @return (a^b) mod c */ private static 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; } }