Witam, mam pytanie, próbuje napisać kod do zadania "Liczby Pierwsze" ze SPOJ-a, ale mój algorytm i kod chyba nie działają tak jak powinien. Treść zadania brzmi następująco:
Mój kod wygląda nastepująco:
#include <iostream>
int main()
{
int n;
short a;
std::cin>>n;
for(int i=0;i<n;i++)
{
std::cin>>a;
if (a==1)
std::cout<<"NIE"<<std::endl;
else if (a==2 || a==3 || a==5 || a==7 || a==11 || a==13 || a==17 || a==19 || a==23 || a==29 || a==31 || a==37 || a==41 || a==43 || a==47 || a==53)
std::cout<<"TAK"<<std::endl;
else if ((a%2==0) || (a%3==0) || (a%5==0) || a%7==0 || a%11==0 || a%13==0 || a%17==0 || a%19==0 || a%23==0 || a%29==0 || a%31==0 || a%37==0 || a%41==0 || a%43==0 || a%47==0 || a%53==0)
std::cout<<"NIE"<<std::endl;
else if (a%2>0 || a%3>0 || a%5>0 || a%7>0 || a%11>0 || a%13>0 || a%17>0 || a%19>0 || a%23>0 || a%29>0 || a%31>0 || a%37>0 || a%41>0 || a%43>0 || a%47>0 || a%53>0)
std::cout<<"TAK"<<std::endl;
}
return 0;
}
Spoj mi zgłasza błędną odpowiedź, czy powinienem umieścić po prostu więcej warunków, porównań w ifach czy coś pominałem? Wiem, że można napisać to w inny sposób, ale mój pomysł padł na taki i chciałbym go zrealizować do końca, prosiłbym o jakieś rady w tej kwestii.