素数生成機

自然数 n に対して n 番目の素数を返す関数を作ってみました。
n 番目の素数2^n 以下だという定理があるので、n が素数であるならば 1、そうでないなら 0 を返す関数を Prime(n) とかくことにすると
p_n = \sum_{i=1}^{2^n} i \rm{Prime}(i) \rm{D}\left(\sum_{j=2}^{i-1} \rm{Prime}(j),n-1\right)
となります。
ここで、D はクロネッカーのデルタです。
さて、次は関数 Prime を具体的に構成しましょ。
\rm{Prime}(i) = \prod_{j=2}^{i-1}(1-\rm{D}(\rm{M}(i,j),0))
です。
ここで、M(i,j) は i を j で割った余りです。
また、以前の記事に書いたとおり、D も M も四則演算と絶対値とΣを用いて表すことができます。
めでたし。
(何の役にも立ちません。)