Пример проверки того, является ли целое число (введенное пользователем) простым числом или нет, с использованием цикла 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
.