Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Liczby Pierwsze PHP
Forum PHP.pl > Forum > PHP
bcl
Witam, właśnie przerabiam podstawy PHP z książki PHP Samouczek 2003 Karol Wierzchołowski,
jest tam następujący skrypt na liczby pierwsze w PHP:

  1. <?php
  2. // prime numbers
  3.  
  4.  
  5. for ($number=1;$number<=10;$number++);
  6. {
  7. $dividers=0;
  8.  
  9. for ($i=1;$i<=$number/2;$i++)
  10. if ($number%$i==0)
  11. $dividers++;
  12. if ($dividers==1)
  13. echo ("$number is the prime number<br>");
  14. }
  15. ?>


Niestety jest w nim błąd, bo wyświetla tylko ze liczba pierwsze jest 11, a nie rozpatruje liczba z przedzialu 1-10. Gdzie jest błąd?


przepraszam za zawracanie glowy, zbedny srednik w pierwszej linijce za for wszystko rozwiazuje:

  1. <?php
  2. // prime numbers
  3.  
  4.  
  5. for ($number=1;$number<=10;$number++)
  6. {
  7. $dividers=0;
  8.  
  9. for ($i=1;$i<=$number/2;$i++)
  10. if ($number%$i==0)
  11. $dividers++;
  12. if ($dividers==1)
  13. echo ("$number is the prime number<br>");
  14. }
  15. ?>
Uriziel01
A tak na przyszłość takie (oraz wiele wiele innych) problemy doskonale rozwiązuje: Xdebug. Naprawdę polecam się zapoznać jeżeli dopiero uczysz się PHP to jest on wręcz nieocenionym narzędziem.
Sephirus
To prawda ale faktem też jest (i chyba zgodzi się ze mną wielu...), że najgorszym błędem jest właśnie błąd typu średnika w takiej pętli jak tutaj... Przy dużej ilości kodu i dużych zmianach potrafi zajść za skórę... tongue.gif
Uriziel01
No tak ale robiąc taki debug przez Xdebug'a od razu zobaczysz że skacze on 'w kółko' przez tą jedną linię a resztę pętli wykonuje tylko raz.
Swoją drogą kiedyś jakieś rozbudowane IDE (bodajże zend'a ?) miało fajne powiadomienie w stylu 'Czy na pewno tam powinien byś średnik?' gdy wykryło takowy zaraz za pętlą, całkiem fajna sprawa.
celbarowicz
Nie szukaj liczb pierwszych wśród liczb parzystych większych od 3. Algorytm będzie wówczasz szybszy. Zaczenając od 3 skasz co 2.
Orzeszekk
na nauke języka polecam 30 dniowego triala (w pelni funkcjonalnego) programu PHPStorm.

Jest to swietny edytor, ktory wylapuje bardzo dobrze literowki i tego typu blędy, np zbedny srednik, zla ilosc nawiasów itd.
pisanie w notatniku gdy nie ma sie zbyt dobrego poczucia skladni to straszna męka.
bcl
Jak mogé zainstalowac i korzystac z xdebug? Na razie widze, ze jest to tylko biblioteka .dll ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.