Czy pobrane liczby są pierwsze? Zadanie.
Ostatnio zmodyfikowano 2019-11-25 21:23
elsiete92 Temat założony przez niniejszego użytkownika |
Czy pobrane liczby są pierwsze? Zadanie. » 2019-11-25 12:46:19 Witam, mam taką treść zadania: Zadanie Dla podanych na wejściu liczb rozstrzygnij, czy są one pierwsze, czy złożone Wejście W pierwszej linii wejścia znajduje się liczba t (1 <= t <= 500), oznaczająca ilość przypadków testowych. W kolejnych t liniach znajdują się liczby z przedziału <2, 2^31-1>. Wyjście Dla każdej liczby należy wypisać "YES" jeśli jest pierwsza, "NO" jeśli jest złożona. Przykład Dla danych wejściowych 6 2 3 4 5 6 7 poprawną odpowiedzią jest YES YES NO YES NO YES #include <iostream>
using namespace std;
bool pierwsza( int n ); long tab[ 500 ];
int main() { int t; cin >> t; for( int i = 0; i < t; i++ ) { cin >> tab[ i ]; } for( int i = 0; i < t; i++ ) { if( pierwsza( tab[ i ] ) ) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; } bool pierwsza( int n ) { if( n < 2 ) { return false; } for( int i = 2; i * i <= n; i++ ) { if( n % i == 0 ) { return false; } } return true; }
Tak to zrobiłem, podaje poprawna wartość, jednak kompilator sprawdzający zadanie wywala błędną odpowiedź, ktoś wskaże właściwą droge?:) |
|
pekfos |
» 2019-11-25 17:06:08 |
|
elsiete92 Temat założony przez niniejszego użytkownika |
» 2019-11-25 19:33:23 No tak nie sprawdziłem dokładnie, czy ktoś może mi powiedzieć gdzie jest błąd i czy można to zrobić bez tablic, by najpierw pobrać wszystkie liczby i następnie wyświetlić wynik? |
|
pekfos |
» 2019-11-25 19:57:29 No tak nie sprawdziłem dokładnie, czy ktoś może mi powiedzieć gdzie jest błąd |
To jakbyś w ogóle nie testował. Co dokładnie cię powstrzymuje przed prześledzeniem działania programu dla liczby 15? czy można to zrobić bez tablic, by najpierw pobrać wszystkie liczby i następnie wyświetlić wynik? |
Tak. I nie. Mam problem z zadaniem ze SPOJa |
|
elsiete92 Temat założony przez niniejszego użytkownika |
» 2019-11-25 21:23:58 Ok, poprawione. |
|
« 1 » |