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