さんぽみち

なにか思いついたときとかに気まぐれに更新されます。

C#で Project Euler P7

問題

Problem 7 「10001番目の素数
素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり, 6番目の素数は 13 である.
10 001 番目の素数を求めよ.
Problem 7 - PukiWiki

解答

using System;

public static class P7
{
    public static void Main()
    {
        Console.WriteLine(Calc());
    }
    
    private static ulong Calc()
    {
        return PrimeGenerator.GetPrime(10000);  // インデックスは 0 始まり
    }
}

計算量 $O(nm(\log n)^2)$
C#で Project Euler P3 - さんぽみち で作った素数生成器を用いて10001番目の素数を得るだけ。
素数生成器のソースは割愛。