diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2022-11-10 11:28:52 +0200 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2022-11-11 09:15:47 +0200 |
commit | f8b0cf38d1f62e3f012a086513aa73952fbb9b3b (patch) | |
tree | 6712b9f1de9ffc2d136b5195c2405e6cff879423 | |
parent | 5fe75110fe3e9d22205cba089d546e91b1156846 (diff) | |
download | gcd-f8b0cf38d1f62e3f012a086513aa73952fbb9b3b.tar.gz |
Add Erlang
-rw-r--r-- | gcd.erl | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -0,0 +1,28 @@ +% Synopsis: +% +% $ escript gcd.erl 11 22 33 121 +% +% or +% +% $ erl -compile gcd / erlc gcd.erl +% $ erl -noshell -run gcd main 11 22 33 121 +% + +-module(gcd). +-export([main/1, main/0]). +-mode(compile). + +gcd2(A, 0) -> A; +gcd2(A, B) -> gcd2(B, A rem B). + +gcdn(Nums) -> + lists:foldl(fun gcd2/2, 0, Nums). + +main() -> init:stop(). + +main([]) -> init:stop(); +main(Args) -> + Nums = lists:map(fun erlang:list_to_integer/1, Args), + io:format("~w\n", [gcdn(Nums)]), + init:stop(). + |