Tak jak w temacie robie program na Spoju, najpierw zrobiłem ten program bez wykorzystania sita Eratostenesa oczywiście spoj wywala "przekroczono limit czasu" ,wiec zrobilem drugi program i wykorzytałem do tego celu sito lecz spoj znowu protestuje :) "przekroczono limit czasu" powie mi ktoś co moge mieć nie tak :)
#include <iostream>
using namespace std;
bool numbersTable[10000];
int podaj,t,j=0,tak=0;
int main()
{
do{cin>>t;
}while(t>100000);
for (int i = 2; i*i <= 10000; i++ )
{
if (numbersTable[i] == true) continue;
for (int j = 2 * i ; j <= 10000; j += i) numbersTable[j] = true;
}
while(t--)
{
do{cin>>podaj;
}while(podaj>10000);
if(podaj==0 || podaj==1) cout<<"NIE"<<endl;
else
{
do{
if(numbersTable[j]==false)
{
if(j==podaj)
{
cout<<"TAK"<<endl;
tak++;
break;
}
}
j++;
}while(j<10000);
if(tak==0) cout<<"NIE"<<endl;
}
j=0;
tak=0;
}
cin.ignore();
cin.get();
}