#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 1000000;
int n;
ll phi[maxn + 10];
void sieve(const int N = maxn)
{
for (int i = 2; i <= N; i++)
phi[i] = i;
for (int i = 2; i <= N; i++)
if (phi[i] == i)
for (int j = i; j <= N; j += i)
phi[j] -= phi[j]/i;
}
ll sigma(ll a, ll b)
{
return (b - a + 1) * (a + b) >> 1;
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("GCD_EXTREME.INP", "r"))
{
freopen("GCD_EXTREME.INP", "r", stdin);
freopen("GCD_EXTREME.OUT", "w", stdout);
}
sieve();
for (int i = 1; i <= maxn; i++)
phi[i] += phi[i - 1];
while (cin >> n)
{
if (n == 0) break;
ll ans = 0;
int last = 1;
while (1)
{
ll d = n/last;
int nx = n/d;
ans += (phi[d]) * sigma(last, nx);
last = nx + 1;
if (nx >= n) break;
}
cout << ans, el;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gMTAwMDAwMDsKCmludCBuOwpsbCBwaGlbbWF4biArIDEwXTsKCnZvaWQgc2lldmUoY29uc3QgaW50IE4gPSBtYXhuKQp7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBOOyBpKyspCiAgICAgICAgcGhpW2ldID0gaTsKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IE47IGkrKykKICAgICAgICBpZiAocGhpW2ldID09IGkpCiAgICAgICAgICAgIGZvciAoaW50IGogPSBpOyBqIDw9IE47IGogKz0gaSkKICAgICAgICAgICAgICAgIHBoaVtqXSAtPSBwaGlbal0vaTsKfQpsbCBzaWdtYShsbCBhLCBsbCBiKQp7CiAgICByZXR1cm4gKGIgLSBhICsgMSkgKiAoYSArIGIpID4+IDE7Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpZiAoZm9wZW4oIkdDRF9FWFRSRU1FLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiR0NEX0VYVFJFTUUuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigiR0NEX0VYVFJFTUUuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIHNpZXZlKCk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWF4bjsgaSsrKQogICAgICAgIHBoaVtpXSArPSBwaGlbaSAtIDFdOwoKICAgIHdoaWxlIChjaW4gPj4gbikKICAgIHsKICAgICAgICBpZiAobiA9PSAwKSBicmVhazsKICAgICAgICBsbCBhbnMgPSAwOwogICAgICAgIGludCBsYXN0ID0gMTsKICAgICAgICAKICAgICAgICB3aGlsZSAoMSkKICAgICAgICB7CiAgICAgICAgICAgIGxsIGQgPSBuL2xhc3Q7CiAgICAgICAgICAgIGludCBueCA9IG4vZDsKCiAgICAgICAgICAgIGFucyArPSAocGhpW2RdKSAqIHNpZ21hKGxhc3QsIG54KTsKCiAgICAgICAgICAgIGxhc3QgPSBueCArIDE7CiAgICAgICAgICAgIGlmIChueCA+PSBuKSBicmVhazsKICAgICAgICB9CiAgICAgICAgY291dCA8PCBhbnMsIGVsOwogICAgfQp9Cg==