LoginSignup
0
0

More than 5 years have passed since last update.

素数リストを生成する(Erlang)

Posted at

素数リストを生成する

考え方はすでに素数と判定されたら、リストに入れる。(PS: Prime List)
素数の判定は:リストに入っている素数すべてに割り切れない時にこの数字の素数です。
奇数だけを判定します。

#!/usr/bin/env escript

main(_) ->
    Res = prime_list(1000).
    %% io:format("~p~n", [length(Res)]).

prime_list(Num)->
    prime_list(Num, 3, [2]).

prime_list(Num, PP, PS) when PP >= Num ->
    lists:reverse(PS);
prime_list(Num, PP, PS) when PP < Num ->
    IsPrime = lists:any(fun(X) -> PP rem X =:= 0 end, PS),
    case IsPrime of
        true   -> prime_list(Num, PP+2, PS);
        false    -> prime_list(Num, PP+2, [PP|PS])
    end.
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0