トップページに戻る    次のProblemへ    前のProblemへ

Problem7 10001番目の素数

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


SQL

declare
    SosuuCnt pls_Integer :=0;
    TargetVal pls_Integer :=2;
    IsSosuu boolean;
begin
    Loop
        IsSosuu := true;
        for I in 2..TargetVal-1 Loop
            if mod(TargetVal,I)=0 then
                IsSosuu := false; exit;
            end if;
        end Loop;
        if IsSosuu then
            SosuuCnt := SosuuCnt+1;
            exit when SosuuCnt = 10001;
        end if;
        TargetVal := TargetVal+1;
    end Loop;
    DBMS_Output.Put_Line('Answer=' || to_char(TargetVal));
end;
/


実行結果

Answer=104743


解説

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

C#での解