Liczby pierwsze
Ostatnio zmodyfikowano 2016-11-17 21:10
Robercik123 Temat założony przez niniejszego użytkownika |
Liczby pierwsze » 2016-11-17 19:09:09 Cześć, mam taki problem.. Nie moge zrozumieć poniższego kodu, który sprawdza czy podana liczba jest liczbą pierwszą czy nie #include <stdio.h>
#include <stdlib.h>
int main()
{ int p, i; printf( "Podaj liczbe: " ); scanf( "%d", & p ); for( i = 2; i < p; i++ ) { if( p % i == 0 ) { printf( "%d nie jest liczba pierwsza.\n", p ); system( "PAUSE" ); return 1; } } printf( "%d jest liczba pierwsza.\n", p ); system( "PAUSE" ); return 0; }
Dodam, że program działa prawidłowo, tylko po prostu nie moge go zrozumieć. Załóżmy, że podam 9. Czyli 9 % 2 = 1 a w programie wyświetla, że liczba nie jest pierwsza wtedy gdy ten wynik to 0. Czyli jak działa program skoro wynik jego działania jest prawidłowy, bo wyświetla że 9 nie jest pierwsza. Zagmatwałem troche, ale kompletnie sie pogubiłem. |
|
Robercik123 Temat założony przez niniejszego użytkownika |
» 2016-11-17 19:43:33 Nikt nic :/ ? |
|
marcolo2307 |
» 2016-11-17 20:29:51 Masz tam pętlę. 9%2=1 9%3=0 // tu się przerywa
|
|
mateczek |
» 2016-11-17 20:51:54 A coś ty taki napalony !!! w 15 minut oczekujesz odpowiedzi?? masz komentarze do twojego programu #include <stdio.h> #include <stdlib.h> #include<math.h> int main() { int p, i; printf( "Podaj liczbe: " ); scanf( "%d", & p ); int max = sqrt( p ); for( i = 2; i < max; i++ ) { if( p % i == 0 ) { printf( "%d nie jest liczba pierwsza.\n", p ); return 1; } } printf( "%d jest liczba pierwsza.\n", p ); return 0; } |
|
Robercik123 Temat założony przez niniejszego użytkownika |
» 2016-11-17 21:10:31 Dzięki za pomoc :), jeszcze raz do tego przysiąde. |
|
« 1 » |