-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathp69.erl
25 lines (22 loc) · 913 Bytes
/
p69.erl
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
-module(p69).
-export([answer/0]).
%% Euler's Totient function, φ(n) [sometimes called the phi function], is used
%% to determine the number of numbers less than n which are relatively prime to
%% n. For example, as 1, 2, 4, 5, 7, and 8, are all less than nine and
%% relatively prime to nine, φ(9)=6.
%% n Relatively Prime φ(n) n/φ(n)
%% 2 1 1 2
%% 3 1,2 2 1.5
%% 4 1,3 2 2
%% 5 1,2,3,4 4 1.25
%% 6 1,5 2 3
%% 7 1,2,3,4,5,6 6 1.1666...
%% 8 1,3,5,7 4 2
%% 9 1,2,4,5,7,8 6 1.5
%% 10 1,3,7,9 4 2.5
%% It can be seen that n=6 produces a maximum n/φ(n) for n ≤ 10.
%% Find the value of n ≤ 1,000,000 for which n/φ(n) is a maximum.
answer() ->
lists:foldl(fun(P, Prod) when Prod * P > 1000000 -> Prod;
(P, Prod) -> Prod * P
end, 1, primes:queue(100)).