aboutsummaryrefslogtreecommitdiff
path: root/problem14.erl
blob: 335c269357df987f599b12c2bf3a8ca02658a9bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
-module(problem14).
-export([solve/0]).

solve() ->
	rep(1,1000000,1,1).

do(N, C) ->
	if
		N == 1 ->
			C;
		N rem 2 == 0 ->
			do((N div 2), (C + 1));
		N rem 2 > 0 ->
			do(((3 * N) + 1), (C + 1))
	end.

rep(Num, Max, Top, TN) ->
	if
		Num > Max ->
			TN;
		true ->
			L = do(Num, 1),
			if
				L > Top ->
					rep((Num + 1), Max, L, Num);
				true ->
					rep((Num + 1), Max, Top, TN)
			end
	end.