真的骄傲梦想家园
专业源于兴趣和努力
 1 -module(libs).
2 -export([qsort/1, isPrime/1, findPrime/2]).
3
4 qsort([H|T]) ->
5 qsort([X || X <- T, X < H])
6 ++ [H] ++
7 qsort([X || X <- T, X >= H]);
8 qsort([]) -> [].
9
10 isPrime(1) -> false;
11 isPrime(2) -> true;
12 isPrime(X) when X rem 2 =:= 0 -> false;
13 isPrime(X) ->
14 N = 2, E = math:sqrt(X) + 1,
15 isPrime(X, N, E).
16 isPrime(X, N, E) when N =< E ->
17 case X rem N of
18 0 -> false;
19 _ -> isPrime(X, N+1, E)
20 end;
21 isPrime(_, _, _) -> true.
22 findPrime(S, E) -> findPrime(S, E, []).
23 findPrime(S, E, L) when S >= E ->
24 case isPrime(S) of
25 true -> findPrime(S - 1, E, [S|L]);
26 false -> findPrime(S - 1, E, L)
27 end;
28 findPrime(_, _, L) -> L.

在命令行输入libs:findPrime(100,1).

将输出100内的素数。

posted on 2012-02-08 13:52  真的骄傲  阅读(685)  评论(0编辑  收藏  举报