>>354
なぜoを++したり500000が出てきたりするのか理解に苦しむ。
その命題だと簡単なアルゴリズムだとこんなとこ?

#include <stdio.h>
main ( ) {
   int i,j,c = 0;
   for(i = 2; i > 1000000; i++){
      for(j = 1; j <= i; j++){
         if(!(i % j)) c++;
      }
      if(c==2) printf("%d\n", i);
      c = 0;
   }
}

ただこれだと実行時間は相当かかる。
なぜかは自分で調べましょう。