Программа на C ++ для проверки того, является ли число простым или нет

Пример проверки того, является ли целое число (введенное пользователем) простым числом или нет, с использованием цикла for и оператора if… else.

Чтобы понять этот пример, вы должны знать следующие темы программирования на C ++:

  • C ++ if, if… else и Nested if… else
  • C ++ для цикла
  • Оператор C ++ break и continue

Положительное целое число, которое делится только на 1 и само называется простым числом.

Например: 13 - простое число, потому что оно делится только на 1 и 13, но 15 не является простым числом, потому что оно делится на 1, 3, 5 и 15.

Примечание. 0 и 1 не являются простыми числами.

Пример: проверка простого числа

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Вывод

 Введите положительное целое число: 29 29 - простое число.

Эта программа берет у пользователя положительное целое число и сохраняет его в переменной n.

Обратите внимание, что логическая переменная isPrime инициализируется trueв начале программы.

Поскольку 0 и 1 не являются простыми числами, мы сначала проверяем, является ли введенное число одним из этих чисел или нет. Если входное число равно 0 или 1 , тогда значение isPrime устанавливается равным false.

В противном случае начальное значение isPrime остается неизменным, и выполняется forцикл, который проверяет, делится ли введенное пользователем число на i или нет.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

forЦикл проходит от i == 2к i <= n / 2и увеличивает значение I на 1 с каждой итерации.

Цикл завершается на, i == n / 2потому что мы не можем найти никакого множителя для n, кроме числа n / 2 . Таким образом, любые последующие итерации n / 2избыточны.

Если число, введенное пользователем, полностью делится на i, тогда isPrime устанавливается falseравным, и число не будет простым числом.

Но если входное число не полностью делится на i на протяжении всего цикла, то это означает, что входное число делится только на 1 и само это число.

Итак, данное число - простое число.

В случае n == 2, forцикл не запускается, и значение isPrime остается true.

Интересные статьи...