Вот программа на C++, проверяющая, является ли число простым:
#include <iostream>
bool isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int number;
std::cout << "Enter a number: ";
std::cin >> number;
if (isPrime(number)) {
std::cout << number << " is a prime number." << std::endl;
} else {
std::cout << number << " is not a prime number." << std::endl;
}
return 0;
}
Эта программа принимает введенное пользователем число и проверяет, является ли оно простым числом или нет. Он использует базовый алгоритм для перебора от 2 до квадратного корня числа и проверяет, делит ли какое-либо из чисел входное число поровну. Если такой делитель не найден, число считается простым.
Вот несколько возможных методов определения простых чисел в C++:
- Метод грубой силы: проверьте делимость числа на все числа от 2 до квадратного корня.
- Решето Эратосфена: создайте список простых чисел до определенного предела и проверьте, присутствует ли входное число в списке.
- Пробное деление: проверьте делимость числа на простые числа до квадратного корня.
- Маленькая теорема Ферма: используйте модульное возведение в степень, чтобы проверить, удовлетворяет ли число теореме.
- Тест на простоту Миллера-Рабина: используйте вероятностный алгоритм, чтобы определить, является ли число простым.