Приклад перевірки, чи є ціле число (введене користувачем) простим числом чи не використовується для циклу for та if … else.
Щоб зрозуміти цей приклад, ви повинні знати наступні теми програмування на C ++:
- C ++ if, if … else та вкладений if … else
- C ++ для циклу
- Розбийте та продовжте заяву на C ++
Позитивне ціле число, яке ділиться лише на 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
.