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