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

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

Цікаві статті...