<?php $limit = 500; $test = 2; while(TRUE) { $podziel = 2; if ($test > $limit) break; while(TRUE) { if ($podziel > sqrt($test)) { break; } if ($test % $podziel == 0) break; $podziel = $podziel + 1; } $test = $test + 1; } ?>
i niestety nie bardzo go rozumiem, wiem, że pierwsza pętla jest powtarzana aż do uzyskania $test większej niż 500. A druga ? Wiem że wypisuje liczbę jeżeli jej pierwiastek jest mniejszy od zmiennej $podziel.
no to zakładam, że $test i $podziel są 2,
<?php 2 > sqrt(2) ?>
prawda więc wypisuje 2 i przerywa pętle, teraz
<?php 2 > sqrt(3) ?>
prawda więc wypisuje 3 i przerywa pętle, astępnie 4,
<?php 2 > sqrt(4) ?>
fałsz, więc idzie dalej.
I teraz jeżeli 4 dzieli się bez reszty przez 2 to przerywa, a że się dzieli to koniec pętli. i Teraz mam problem bo
<?php 2 > sqrt(5) ?>
nie jest i 5 teoretycznie wypisać nie powinno, ale wypisuje, wypisuje mi wsztstki liczby pierwsze do 500. Gdzie popełniam błąd w moim rozumowaniu ?