Skip to content

Instantly share code, notes, and snippets.

@sushant12
Last active May 17, 2020 02:52
Show Gist options
  • Save sushant12/0c3d4a50816b0880b901c8ea1c46bd4c to your computer and use it in GitHub Desktop.
Save sushant12/0c3d4a50816b0880b901c8ea1c46bd4c to your computer and use it in GitHub Desktop.
-module(assignment4).
-export([fib/1, perfect/1]).
fib(N) -> fib_tail(N, 0, 1).
fib_tail(0, X,_Y) -> X;
fib_tail(N, X, Y) when N > 0 -> fib_tail(N - 1, X + Y, X).
perfect(N) when N > 0 -> sum_divisors(N div 2, N, 0).
sum_divisors(0, A, C) -> A == C;
sum_divisors(N, A, C) when A rem N == 0 -> sum_divisors(N - 1, A, C + N);
sum_divisors(N, A, C) when A rem N =/= 0 -> sum_divisors(N -1, A, C).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment