-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathp29.erl
21 lines (18 loc) · 936 Bytes
/
p29.erl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-module(p29).
-export([answer/0]).
%% Consider all integer combinations of a^b for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5:
%% 2^2=4, 2^3=8, 2^4=16, 2^5=32
%% 3^2=9, 3^3=27, 3^4=81, 3^5=243
%% 4^2=16, 4^3=64, 4^4=256, 4^5=1024
%% 5^2=25, 5^3=125, 5^4=625, 5^5=3125
%% If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms:
%% 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125
%% How many distinct terms are in the sequence generated by a^b for 2 ≤ a ≤ 100 and 2 ≤ b ≤ 100?
answer() ->
Els = lists:merge([ [round(math:pow(A, B))] || A <- lists:seq(2, 100), B <- lists:seq(2, 100) ]),
Uni = lists:foldl(fun(E, L) -> case lists:member(E, L) of
true -> L;
false -> [ E | L ]
end
end, [], Els),
length(Uni).