Пример за проверу да ли је цео број (који је унео корисник) прост број или га не користи фор петља и иф … елсе израз.
Да бисте разумели овај пример, требало би да имате знање о следећим темама програмирања на Ц ++:
- Ц ++ иф, иф … елсе и угнеждени иф … елсе
- Ц ++ за Лооп
- Ц ++ разбити и наставити Изјаву
Цео позитиван број који је дељив само са 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 је прост број.
Овај програм узима од корисника позитиван цео број и чува га у променљивој н.
Приметите да је логичка променљива исПриме иницијализована на true
почетку програма.
Будући да 0 и 1 нису прости бројеви, прво проверавамо да ли је улазни број један од тих бројева или не. Ако је улазни број 0 или 1 , тада је вредност исПриме постављена на false
.
Иначе, почетна вредност исПриме остаје непромењена и for
петља се извршава, чиме се проверава да ли је број који је корисник унео савршено дељив са и или не.
for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) )
for
Петља траје од i == 2
до i <= n / 2
и повећава вредност И је 1 са сваке итерације.
Петља се завршава на i == n / 2
јер не можемо наћи фактор за н мимо броја n / 2
. Дакле, било каква понављања n / 2
је сувишна.
Ако је број који је унео корисник савршено дељив са и, тада је исПриме постављено на false
и број неће бити прост број.
Али ако улазни број није савршено дељив са и током целе петље, онда то значи да је улазни број дељив само са 1 и самим тим бројем.
Дакле, дати број је прост број.
У случају n == 2
, for
петља се не може покренути и вредност исПриме остаје true
.