Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pętla liczb wypisująca liczby pierwsze
szarik
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.07.2004

Ostrzeżenie: (0%)
-----


Mam taki oto kodzik
  1. <?php
  2.  
  3. $limit = 500;
  4. $test = 2;
  5. while(TRUE)
  6. {
  7.  $podziel = 2;
  8.  if ($test > $limit)
  9. break;
  10.  while(TRUE)
  11.  {
  12.  if ($podziel > sqrt($test))
  13.  {
  14.  print(&#092;"$test \");
  15.  break;
  16.  }
  17.  if ($test % $podziel == 0)
  18.  break;
  19.  $podziel = $podziel + 1;
  20.  }
  21.  $test = $test + 1;
  22. }
  23.  
  24. ?>

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,
  1. <?php
  2. 2 > sqrt(2)
  3. ?>

prawda więc wypisuje 2 i przerywa pętle, teraz
  1. <?php
  2. 2 > sqrt(3)
  3. ?>

prawda więc wypisuje 3 i przerywa pętle, astępnie 4,
  1. <?php
  2. 2 > sqrt(4)
  3. ?>

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
  1. <?php
  2. 2 > sqrt(5)
  3. ?>

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 ?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 21:05