-module(prog).
-export([main/0]).

gcd(A,B) when A == 0; B == 0 -> 0;
gcd(A,B) when A == B -> A;
gcd(A,B) when A > B -> gcd(A-B, B);
gcd(A,B) -> gcd(A, B-A).
lcm(A,B) -> (A*B) div gcd(A, B).

main() ->
  erlang:display(lcm(256, 18)),
  erlang:display(lcm(256, 16)),
  erlang:display(lcm(16, 16)),
  true.
