blob: 1982f2b6b378f895f3e39a81caa34a5d2aede280 (
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(problem42).
-export([solve/0]).
-import(problem42a,[getwords/0]).
solve() ->
V = [value(X) || X <- getwords()],
T = numbers(lists:max(V), 1, [1]),
length([Y || Y <- V, lists:member(Y,T)]).
numbers(M,N,L) ->
O = lists:max(L),
if
O >= M ->
L;
true ->
numbers(M,N+1,[((N*(N+1)) div 2) | L])
end.
value([H|T]) ->
if
(H > 64) and (H < 91) ->
(H - 64) + value(T);
(H > 96) and (H < 123) ->
(H - 96) + value(T);
true ->
value(T)
end;
value([]) ->
0.
|