Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Algorytm sprawdzający czy dana liczba jest pierwsza., Gdzie jest błąd?
xamrex
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 1
Dołączył: 10.08.2007

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


Znalazłem taki skrypt do sprawdzania liczby pierwszaej
  1. $n=5;
  2. $pierwsza = true;
  3. for ($i=2; $i<$n; $i++){
  4. if ($n % $i==0){
  5. $pierwsza = false;
  6. }
  7. }
  8. if($pierwsza){
  9. echo "liczba $n jest pierwsza";
  10. }else{
  11. echo "liczba $n nie jest pierwsza";
  12. }

Troszkę go zmodyfikowałem(kod poniżej)

  1. $n=6;
  2. for ($i=2; $i<$n; $i++){
  3. if ($n % $i==0){
  4. $pierwsza = false;
  5. }else{
  6. $pierwsza = true;
  7. }
  8. }
  9. if($pierwsza){
  10. echo "liczba $n jest pierwsza";
  11. }else{
  12. echo "liczba $n nie jest pierwsza";
  13. }

Oczywiście mój kod nie działa. Czy mógłby mi ktoś wytłumaczyć dlaczego?
Ja go rozumiem tak, że sprawdza wynik dzielenia modulo, jeśli jest to 0(czyli liczba złożona)zwraca fałsz a jeśli coś innego prawdę. Potem mamy warunek, jeśli pierwsza to prawda to wyświetla odpowiedni komunikat.

Problem w tym, że mój skrypt wyświetla, że wszystkie liczby są pierwsze.
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: 26.09.2025 - 02:35