# Efficient way to compute $\sum_{i=1}^n \varphi(i)$

Given some upper bound $n$ is there an efficient way to calculate the following:

$$\sum_{i=1}^n \varphi(i)$$

I am aware that:

$$\sum_{i=1}^n \varphi(i) = \frac 12 \left( 1+\sum_{i=1}^n \mu(i) \left \lfloor \frac ni \right\rfloor ^2 \right)$$

Where:
$\varphi(x)$ is Euler's Totient
$\mu(x)$ is the Möbius function

I'm wondering if there is a way to reduce the problem to simpler computations because my upper bound on will be very large, ie: $n \approx 10^{11}$.

Neither $\varphi(x)$, nor $\mu(x)$, are efficient to compute for a large bound of $n$

Naive algorithms will take an unacceptably long time to compute (days) or I would need would need a prohibitively expensive amount of RAM to store look-up tables.

• Have you tried wikipedia? It gives the following formula for this sum $\sum_{i=1}^k \varphi(i) = \dfrac12 \big( 1 + \sum_{i=1}^k \mu(i) \lfloor \frac{n}{i} \rfloor^2 \big)$. – Myself Jun 15 '13 at 17:22
• Wolfram Functions gives an asymptotic sum, which may help depending on exactly what you need this for. – George V. Williams Jun 15 '13 at 17:24
• you should make your question clear for everybody, who is $\varphi$? I can't understand the question! – math_man Jun 15 '13 at 17:50
• @awashburn: You second equality does not hold. You can't pull M(n) out of the sum. – Charles Jun 15 '13 at 18:34
• Just a crazy thought, but $\sum_{d | n} \varphi(d) = n$. This could possibly be of use. – Dylan Yott Jun 15 '13 at 18:54

## 2 Answers

You can compute $\mu$ efficiently by sieving on intervals. With $n\approx10^{11},$ intervals of length $10^7$ should work well, taking only a few megabytes. Time needed is $O(n\log\log n)$ and space is proportional to $\sqrt n$ or so.

To improve on this, note that $\lfloor n/i\rfloor$ will be constant on large stretches and so that doesn't need to be computed very often. You can then use fast techniques to compute $M(k)$ for a small number of $k$: $n/2,\ n/3,\ n/4,\ \ldots.$ Time needed is roughly $n^{5/6}$ and space is a bit over $n^{1/3}$ using Deléglise & Rivat. You can use sieving to finish the rest in the same time, though it will need a bit more space ($\sqrt n$ would suffice, $n^{5/12}$ is probably achievable without trouble). Practically speaking you'll probably choose somewhat more memory to speed to computation.

Note that this is sequence A002088 in the OEIS.

Edit: I should also mention sequence A064018 which has $$\sum_{n=1}^{10^{11}}\varphi(n)=3039635509283386211140$$ (as computed by the late Donovan Johnson) in addition to sums up to other powers of 10.

If you can efficiently compute $\sum_{i=1}^n \varphi(i)$, then you can efficiently compute two consecutive values, so you can efficiently compute $\varphi(n)$. Since you already know that $\varphi(n)$ isn't efficiently computable, it follows that $\sum_{i=1}^n \varphi(i)$ isn't either.

• Maybe one cannot compute $\phi$ efficiently in general, but if the op is only interested in particular values, like powers of 10, then I see no objection. – Myself Jun 15 '13 at 19:05
• An algorithm that computes $\sum_{i=1}^n \varphi(i)$ with efficiency anywhere close to the efficiency with which we can compute $\varphi(n)$ would count as a huge win here. – Paul Crowley May 20 at 15:00