Lua で素数を求めてみルア

Lua で素数を求めてみルア #

速いという噂をよく耳にする Lua が、どのくらい速いのか試してみた

フィボナッチ数列計算させたらどのスクリプト言語でも速くて面白くなかったので、10万未満の素数を計算させたら、すごく差がついた

厳密な速さ比べをしたいわけではなく、Lua が本当に速いのどうか知りたいだけなので、各言語で最速になるようにとか考えず、全部同じようなロジックで統一。Lua だけ載せとく

function is_prime(n)
        local i
        for i = 2, (n-1) do
                if n % i == 0 then return false end
        end

        return true
end

max = 100000
for i=2,max do
        if is_prime(i) then print(i) end
end

結果

Lua 5.1 23.4s
LuaJIT 3.4s
perl 5.8 49.6s
perl 5.18 43.0s
php 5.2 54.8s
php 5.4 31.9s
ruby 1.8 159.7s
ruby 2.0 50.4s

Lua 、確かに速いなぁ。ruby は 2.0 で普通になったんだなぁ

あと、素数とは関係ないけど、フィボナッチな計算で

a, b = b, a + b

みたいな横着が、php だけ書き方わからんかった。わからんでもいいんですけどね

See Also

Copyright © 髭。/ Hugo + hugo-book