Otóż nie bardzo rozumiem działanie tego programu. Czemu postawiona taki dziwny warunek: if (uLiczba == 2) return true; jak liczba którą wpiszemy nie będzie 2 tylko inna. I przede wszystkim nie rozumiem o co chodzi tutaj z tymi return true i false. (a i nie wiem czemu się nie komplikuje).
Oto program:
bool LiczbaPierwsza(unsigned uLiczba)
{
if (uLiczba == 2) return true;
for (unsigned i = 2; i <= sqrt(uLiczba); ++i)
{
if (uLiczba % i == 0)
return false;
}
return true;
}
void main()
{
unsigned uWartosc;
std::cout << "Podaj liczbe: ";
std::cin >> uWartosc;
if (LiczbaPierwsza(uWartosc))
std::cout << "Liczba " << uWartosc << " jest pierwsza.";
else
std::cout << "Liczba " << uWartosc<< " nie jest pierwsza.";
getch();
}