#include <bits/stdc++.h>
using namespace std;
int su[40001];
int su1[201], su11;
struct d
{
int x;
int y;
};
int qm(int a, int n)//快速幂
{
if (!n)return 1;
int sum = 1;
while (n)
{
if(n&1)
sum *= a;
a = a * a;
n >>= 1;
}
return sum;
}
int main()
{
int n;cin >> n;
if (n == 1)
{
cout << 0;
return 0;
}
if (n == 2)//特判
{
cout << 3;
return 0;
}
for (int i = 2;i <= 200;i++)//打素数表
{
if (!su[i])su1[++su11] = i;
for (int j = 1;j <= su11;j++)
{
if (su1[j] * i <= 40000)
{
su[su1[j] * i] = 1;
if (i % su1[j] == 0)break;
}
else break;
}
}
long long sum = 0;
for (int i = 2;i <= n-1;i++)
{
if (su[i] == 0)
{
sum += i-1;
continue;
}
vector<d> a;
int i1 = i;
for (int j = 1;j <= su11;j++)//这一块为欧拉函数////////////////////
{
if (i1 % su1[j] == 0)
{
int sum = 0;
while (i1 % su1[j] == 0 && i1)
i1 /= su1[j], sum++;
a.push_back({ su1[j],sum });
}
}
for (int j = 0;j < a.size();j++)
sum += qm(a[j].x, a[j].y - 1) * (a[j].x - 1);////////////////////
}
cout << sum * 2 + 3;
}