#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
int lp[100000001], phi[100000001], pr[5761455];
char pow[100000001];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int sz = 0;
int n;
cin >> n;
for (int i = 2; i <= n; i++) {
if (!lp[i]) lp[i] = i, pr[sz++] = i, phi[i] = i - 1, pow[i] = 1;
for (int j = 0; j < sz && pr[j] <= lp[i] && pr[j] * i <= n; j++) {
int val = pr[j] * i;
lp[val] = pr[j];
if (pr[j] == lp[i]) {
pow[val] = pow[i] + 1;
int x = lp[val];
for (int j = 1; j < pow[val]; j++)
x *= lp[val];
if (x == val)
phi[val] = (x / lp[val]) * (lp[val] - 1);
else
phi[val] = phi[x] * phi[val / x];
}
else {
pow[val] = 1;
phi[val] = phi[i] * (pr[j] - 1);
}
}
}
phi[1] = 1;
int k = 0;
while (true) {
if (k >= n) break;
long long sum = 0;
for (int i = k + 1; i <= min(n, k + 100); i++)
sum += phi[i];
//cout << sum << ' ';
k += 100;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKaW50IGxwWzEwMDAwMDAwMV0sIHBoaVsxMDAwMDAwMDFdLCBwcls1NzYxNDU1XTsKY2hhciBwb3dbMTAwMDAwMDAxXTsKCmludCBtYWluKCkgewogIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICBjaW4udGllKDApOwogIGludCBzeiA9IDA7CiAgaW50IG47CiAgY2luID4+IG47CiAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKSB7CiAgICBpZiAoIWxwW2ldKSBscFtpXSA9IGksIHByW3N6KytdID0gaSwgcGhpW2ldID0gaSAtIDEsIHBvd1tpXSA9IDE7CiAgICBmb3IgKGludCBqID0gMDsgaiA8IHN6ICYmIHByW2pdIDw9IGxwW2ldICYmIHByW2pdICogaSA8PSBuOyBqKyspIHsKICAgICAgaW50IHZhbCA9IHByW2pdICogaTsKICAgICAgbHBbdmFsXSA9IHByW2pdOwogICAgICBpZiAocHJbal0gPT0gbHBbaV0pIHsKICAgICAgICBwb3dbdmFsXSA9IHBvd1tpXSArIDE7CiAgICAgICAgaW50IHggPSBscFt2YWxdOwogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDwgcG93W3ZhbF07IGorKykKICAgICAgICAgIHggKj0gbHBbdmFsXTsKICAgICAgICBpZiAoeCA9PSB2YWwpCiAgICAgICAgICBwaGlbdmFsXSA9ICh4IC8gbHBbdmFsXSkgKiAobHBbdmFsXSAtIDEpOwogICAgICAgIGVsc2UKICAgICAgICAgIHBoaVt2YWxdID0gcGhpW3hdICogcGhpW3ZhbCAvIHhdOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIHBvd1t2YWxdID0gMTsKICAgICAgICBwaGlbdmFsXSA9IHBoaVtpXSAqIChwcltqXSAtIDEpOwogICAgICB9CiAgICB9CiAgfQogIHBoaVsxXSA9IDE7CiAgaW50IGsgPSAwOwogIHdoaWxlICh0cnVlKSB7CiAgICBpZiAoayA+PSBuKSBicmVhazsKICAgIGxvbmcgbG9uZyBzdW0gPSAwOwogICAgZm9yIChpbnQgaSA9IGsgKyAxOyBpIDw9IG1pbihuLCBrICsgMTAwKTsgaSsrKQogICAgICBzdW0gKz0gcGhpW2ldOwogICAgLy9jb3V0IDw8IHN1bSA8PCAnICc7CiAgICBrICs9IDEwMDsKICB9CiAgcmV0dXJuIDA7Cn0K