Zmienna logiczna typu Bool.
Ostatnio zmodyfikowano 2017-04-09 22:23
DrFreem4n Temat założony przez niniejszego użytkownika |
Zmienna logiczna typu Bool. » 2017-04-09 22:00:59 Witam. Nie potrafię zrozumieć dlaczego w poniższym programie funkcja "czypierwsza" zawsze zwraca wartość true. Mój tok myślowy napotyka na błąd gdy jestem przy 4: Reszta z dzielenia 4/2 wynosi zero - wydaję się, że powinno zwrócić false. Jednak program wypisuje wszystkie liczby od 1 do 99. Dziękuje z góry za wskazanie błędów myślowych. Pozdrawiam. #include <iostream> #include <cstdlib>
using namespace std;
bool czypierwsza( int liczba ); bool czypodzielna( int liczba, int dzielnik );
int main() { cout << "Program sprawdzi liczby od 1 do 100 i wypisze liczby pierwsze:"; for( int i = 0; i < 100; i++ ) { if( czypierwsza( i ) ); { cout << i << endl; } } }
bool czypierwsza( int liczba ) { for( int i = 2; i < liczba; i++ ) { if( czypodzielna( liczba, i ) ) { return false; } } return true; } bool czypodzielna( int liczba, int dzielnik ) { return(( liczba % dzielnik ) == 0 ); } |
|
carlosmay |
» 2017-04-09 22:23:50 Błąd składniowy (tzn. nie błąd, ale zmienia działanie) Jedynka nie jest liczbą pierwszą. |
|
« 1 » |