Zadání:
Sestavte program, který určí, zda je zadané přirozené číslo prvočíslem.
Řešení:
Zadání vyřešíme použitím cyklu FOR. Zadané číslo postupně vydělíme všemi hodnotami od 2 do číslo-1. Pokud alespoň
při jednom dělení nastane nulový zbytek, nejedná se o prvočíslo a proto si vložíme do pomocné proměnné prvocislo
hodnotu false, která přepíše původní hodnotu true, kterou inicializujeme proměnnou prvocislo
na začátku programu.
Po všech děleních otestujeme, zda v proměnné prvocislo zůstala hodnota true
(zadané číslo je prvočíslem), nebo
byla přepsána hodnotou false (zadané číslo není prvočíslem).
#include "stdafx.h"
#include "math.h"
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int c,i;
bool prvocislo;
printf("Zadejte cislo: ");
scanf_s("%d",&c,1);
prvocislo=true;
for (i=2;i<=c-1;i++)
if (c%i==0) prvocislo=false;
if (prvocislo) printf("Prvocislo\n");
else printf("Neni prvocislo\n");
system("pause");
return 0;
}
program ke stažení
Pro učitele:
Zadané číslo nemusíme testovat všemi čísly z intervali 2..číslo-1, lze nahradit horní mez odmocninou ze zadaného čísla. Jelikož jsou v cyklu FOR požadovány ordinální hodnoty, musíme ještě odmocninu ze zadaného čísla zaokrouhlit na celé číslo.