>>613 こんな感じじゃないかなあ
C++
#include <iostream>
const int MAXENT = 1000000;
int prime_table[MAXENT] = {3};
int main()
{
 int found = 0, s = 0, d = 4;
 for(__int64 p = 5;;p += (d = 6 - d)) {
  for(int i = 0;;i ++) {
   int can = prime_table[i];
   if( p < can * can || i >= found ) {
    if( p < MAXENT ) { prime_table[found ++] = (int)p; }
    if( (s += d - 3) == 0 ) { std::cout << p << std::endl; }
    break;
   }
   if( p % can == 0 ) { break; }
 } }
 return 0;
}