Kuin0.02が公開されたのでエラトステネスのふるいを使って素数を計算してみた。
Kuin0.02でコンパイル, 動作確認してます。
まだKuin用のシンタックスハイライトがない………
constに関するコンパイルエラー、Kuin0.021で修正されました。くいなちゃんに感謝です。 (2012/8/27 22:55)
{
エラトステネスのふるい
Author: きょんたん (@kyonline)
}
func Main()
const N : int :: 10000000
var isPrime : []bool :: @new [N]bool
var Prime : []int :: @new [N]int
var numPrime : int :: 0
for i(0, N - 1)
do isPrime[i] :: true
end for
do Prime[0] :: 2
do numPrime :+ 1
for i(3, N - 1, 2)
if (!isPrime[(i - 1) / 2 - 1])
continue i
end if
do isPrime[(i - 1) / 2 - 1] :: false
do Prime[numPrime] :: i
do numPrime :+ 1
do Kuin@Dbg(i.ToStr())
var j : int :: (i - 1) / 2 - 1 + i
while (j < N)
do isPrime[j] :: false
do j :+ i
end while
end for
do Kuin@Stop()
end func