Skip to content

Instantly share code, notes, and snippets.

@i7an
Created June 26, 2017 10:07
Show Gist options
  • Save i7an/1e77a41aa506e13f11f5c0bc594cce1d to your computer and use it in GitHub Desktop.
Save i7an/1e77a41aa506e13f11f5c0bc594cce1d to your computer and use it in GitHub Desktop.
-module(recursion).
-export([fib/1, perfect/1]).
fib(N) when N > 0 ->
fib(N, 0, 1).
fib(1, First, _Second) ->
First;
fib(2, _First, Second) ->
Second;
fib(N, First, Second) ->
fib(N-1, Second, First+Second).
perfect(N) ->
perfect(N, 1, 0).
perfect(N, I, Sum) when I > (N div 2) ->
N == Sum;
perfect(N, I, Sum) when (N rem I) == 0 ->
perfect(N, I+1, Sum + I);
perfect(N, I, Sum) ->
perfect(N, I+1, Sum).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment