Zrób jeszcze co najmniej dwie wersje:
- wersja:
main () {
}
A potem drugą:
2. wersja:
main () {
int a_kuku;
while (std::cin >> a_kuku) ; /// nic nie rob
/// wczytaj jeszcze kilka razy nic
std::cin >> a_kuku;
std::cin >> a_kuku;
}
Możliwe, że w pierwszej wersji nie zobaczysz 7, ale gdy wyślesz drugą, napewno pojawi się 7, czyli jest blisko. 
Moim zdaniem, dwie tablice to stanowczo za dużo, dzisiaj zrobiłem dla testu, wersję zupełnie bez tablic i bez sita. Czas nie jest powalający, ponad 5 sek, ale z tablicowaniem mam o wiele lepszy więc czemu Ty masz problemy?
Pomyś o tym i przeanalizuj jak bardzo nieefektywnie twój program sprawdza np liczbę 2833.
Przy okazji większych liczb, twój program jest błędny, więc testuj naprawdę swój kod albo u siebie albo na ideone dla większego spektrum liczb a nie tylko dla przykładu z zadania, a nie wysyłaj do sprawdzenia na spoja i nie nazywaj tego [sprawdzania] testowaniem, bo to nie jest testowanie. Zrób też test wydajnościowy, a dopiero potem, gdy uzyskasz AC zacznij myśleć jak przyśpieszyć swój kod.
To jest zadanie z kategorii trudnych, więc może powinieneś zacząć od perfekcyjnego rozwiązania łatwiejszych?
Gdy zadanie PRIME_T rozwiążesz w czasie 0.00, to z tym też będzie Ci łatwiej.