1 / 4
Nov 2020

#include
using namespace std;

int main() {
int liczba;
cin >> liczba;
if (liczba >= 1 && liczba <= 10000) {
if (liczba == 2) cout << “TAK”;
else if (liczba < 2) cout << “NIE”;
else {
for (int i = 2; i < liczba; i++) {
if (liczba % i == 0) {
cout << “NIE”;
i = liczba;
}
else if (i == liczba - 1) {
cout << “TAK”;
}
}
}
}
}

^^tak wygląda mój kod do tego zadania: https://pl.spoj.com/problems/PRIME_T/12

Wszystko ładnie mi wychodzi w Codeblockach, ale, gdy wklejam go na stronę, wyskakuje mi powiadomienie, że odpowiedź jest błędna. Próbowałem szukać podobnego problemu, lecz nie mogłem znaleźć żadnego rozwiązania. Co muszę poprawić?

  • created

    Nov '20
  • last reply

    Nov '20
  • 3

    replies

  • 801

    views

  • 3

    users

  • 3

    links

  1. Twój program sprawdza tylko jedną liczbę. W specyfikacji wejścia jest informacja, że pierwsza liczba to liczba testów a po niej następuje ciąg liczb do testowania.
  2. Prawdopodobnie twój program nie wyrobi się w czasie (masz bardzo słaby algorytm sprawdzania pierwszości)