Cześć
Ostatnio zacząłem bawić się z serwisem spoj. Pisząc kod do zadania z liczbami pierwszymi spotkałem się z problemem. Nie jetem pewien czy jest on spowodowany błędnym myśleniem czy też nie umiejętnie korzystam ze spoja. Jeżeli ktoś zadania z liczbami pierwszymi ma jeszcze przed sobą a nie chce sobie psuć zabawy to niech przestanie dalej czytać :D
Byłbym wdzięczny za pomoc
A oto treść zadania:
Sprawdź, które spośród danych liczb są liczbami pierwszymi
Input
n - liczba testów n<100000, w kolejnych liniach n liczb z przedziału [1..10000]
Output
Dla każdej liczby słowo TAK, jeśli liczba ta jest pierwsza, słowo: NIE, w przeciwnym wypadku.
Mój kod:
#include <iostream>
using namespace std;
void wczytaj(int tab2[]);
void sprawdz(int tab2[]);
int main()
{
int tab[100000];
wczytaj(tab);
sprawdz(tab);
return 0;
}
void wczytaj(int tab2[])
{
//W tab2[0] zapisałem długość tablicy
cin>>tab2[0];
for(int i=1;i<=tab2[0];i++)
{
cin>>tab2[i];
}
}
void sprawdz(int tab2[])
{
for(int i=1;i<=tab2[0];i++)
{
if(tab2[i]==1){ cout<<"NIE\t";continue;}
if(tab2[i]==2){ cout<<"TAK\t";continue;}
if(tab2[i]==5){ cout<<"TAK\t";continue;}
if(tab2[i]==7){ cout<<"TAK\t";continue;}
if((tab2[i]%2==0)||(tab2[i]%3==0)||(tab2[i]%4==0)||
(tab2[i]%5==0)||(tab2[i]%6==0)||(tab2[i]%7==0)||
(tab2[i]%8==0)||(tab2[i]%9==0)){ cout<<"NIE\t";}
else
{
cout<<"TAK\t";
}
}
}