Totient maximum
2015-07-20
Problem 069: Totient maximum
Euler's Totient function, phi(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, phi(9)=6
.
n | Relatively Prime | phi(n) | n/phi(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/phi(n)
for n <= 10
.
Find the value of n <= 1,000,000
for which n/phi(n)
is a maximum.
Solution:
v000000 // Project Euler - Problem 69
################################################################################
################################################################################
################################################################################
v >p50g1+50pv @.g07<
v ^1g0< >30g1+:30p40g- #v_"}}@"**60p 0>:1g70g*v$
>170p"P":10p3:20p*40p230pv^5g03_^#-" "g+1/g01\%g01:g03<p050p030< ^+1<v06:<$
vp08*8**::**::8p11p10:" "< _^#`g03g04< >g` |
>"X"30g:10g%\10g/1+p30g>30g+:40g\` #v_$>30g1+:30p:10g%\10g/1+g" "-|^ p07<
^p+1/g01\%g01:\" ":< ^ <
################################################################################
################################################################################
################################################################################
v >p50g1+50pv @.g07<
v ^1g0< >30g1+:30p40g- #v_"}}@"**60p 0>:1g70g*v$
>170p"P":10p3:20p*40p230pv^5g03_^#-" "g+1/g01\%g01:g03<p050p030< ^+1<v06:<$
vp08*8**::**::8p11p10:" "< _^#`g03g04< >g` |
>"X"30g:10g%\10g/1+p30g>30g+:40g\` #v_$>30g1+:30p:10g%\10g/1+g" "-|^ p07<
^p+1/g01\%g01:\" ":< ^ <
Start
??
Pause
Reset
Output:
Stack: (0)
Explanation:
I had a really complicated solution where I tried to generate an Phi Sieve and had to work around a lot of corner cases. Then I looked at this solution and - well - it's faster and simpler than mine. So I translated it to befunge.
Interpreter steps: | 35 542 |
Execution time (BefunExec): | 16ms (2.22 MHz) |
Program size: | 80 x 10 (fully conform befunge-93) |
Solution: | 510510 |
Solved at: | 2015-07-20 |