Cześć wszystkim, czy ktoś pomoże zrozumieć jak działa sprawdzenie czy liczba jest pierwsza?
Tak wygląda kod, niżej napisze jak ja to analizowałem, dodam że moje rozumowanie nie sprawdza sie juz dla liczby = 4. :p
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;
}
Idąc po kolei:
liczba 2: if przejmuje warunek, return true;
liczba 3: mijam if, wchodze do pętli - sqrt z 3 to ok 1,7, więc pętla nie wykona sie ani razu bo[ i=2 > 1,7 ]; return true;
liczba 4: mijam if, wchodze do pętli - sqrt z 4 to 2, więc pętla wykona się raz, i ++ z 2 na 3 przed instrukcją w pętli, 4%3 = 1 więc wychodze z pętli; return true???