Witam
Link do zadania: http://www.spoj.com/FRAKTAL/problems/FR_04_14/
Był już temat podobny nie tak dawno, ale nie znalazłem tam odpowiedzi. Mimo tego, że pokazuje mi poprawne odpowiedzi w przypadkach, które wypisuje sam w konsoli to spoj jednak nie przepuszcza mi zadania i nie wiem w jakim miejscu mam błąd. Druga rzecz to, czy dobrze napisałem sito?
#include <iostream>
using namespace std;
bool p[10000001] = {};
int main()
{
for (int i = 2;i*i<=10000000;i++)
{
if(!p[i])
{
for(int j=i*i;j<=10000000;j+=i)
{
p[j]=true;
}
}
}
p[1]=1;
p[0]=1;
int t,a,d=1,u=1;
cin >> t;
for (int i = 0;i<t;i++)
{
cin >> a;
if(p[a]==0)
{
cout << a << endl;
}
else
{
while(p[a+d]==1)
{
d++;
}
while(p[a-u]==1)
{
u++;
}
if(u>d)
{
cout << a+d << endl;
}
else
{
cout << a-u << endl;
}
u=1;
d=1;
}
}
}