トップページに戻る    次のC++のサンプルへ    前のC++のサンプルへ

Problem7 10001番目の素数

問題

素数を小さい方から6つ並べると2,3,5,7,11,13であり、6番目の素数は13である。
10001番目の素数を求めよ。


ソース

#include <stdio.h>
#include <limits.h>

void main()
{
    int SosuuCnt=0;
    for (__int64 I=2;I<=_I64_MAX;I++){
        bool IsSosuu = true;
        for(__int64 J=2;J*J<=I;J++){
            if(I%J==0) {
                IsSosuu=false;
                break;
            }
        }
        if (IsSosuu){
            SosuuCnt++;
            printf("%d番目の素数は%lld\n",SosuuCnt,I);
        }
        if (SosuuCnt==10001) return;
    }
}


実行結果

省略
9997番目の素数は104711
9998番目の素数は104717
9999番目の素数は104723
10000番目の素数は104729
10001番目の素数は104743


解説

力まかせで順にチェックしてます。