PyPE solution to PE problem 69
PyPE solution to PE problem 69
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- Undefined
- Drafter:
- None
- Direction:
- Needs approval
- Assignee:
- None
- Definition:
- Approved
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Scott Armitage
- Completed by
- Scott Armitage
Related branches
Related bugs
Sprints
Whiteboard
ProjectEule
===
Euler's Totient function, f(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, f(9)=6.
n Relatively Prime f(n) n/f(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/f(n) for n = 10.
Find the value of n = 1,000,000 for which n/f(n) is a maximum.
Solution
--------
In order to maximize n/f(n), we want to minimize f(n). We note that if n is
a multiple of 2, then every other number below it will be coprime. Further,
we note that if n is a multiple of 3, then every /third/ number below it
will be coprime. This continues for the sequence of primes.
So, to obtain our answer, we begin with a set containing all possible values
of n, then iterate through the prime numbers, removing all multiples of
each prime number from the set until the length of the set reaches 1.
Answer
------
510510