Програма C ++ за проверка дали числото е първостепенно или не

Пример за проверка дали цяло число (въведено от потребителя) е просто число или не се използва за цикъл и if … else израз.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C ++:

  • C ++ ако, ако … друго и вложено ако … друго
  • C ++ за Loop
  • 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.

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