#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 1;
int p[N];
void solve() {
//Calculating factors using prime sieve
for (int i = 2; i < N; ++i) {
if (p[i])continue;
for (int j = i; j < N; j += i)p[j] = i;
}
for (int i = 2; i < N; ++i) {
if (p[i])continue;
for (int j = i; j < N; j += i)p[j] = i;
}
auto getFactorCnt = [&](int x) {
int ans = 1;
while (x > 1) {
int prime = p[x], cnt = 1;
while (x % prime == 0)cnt++, x /= prime;
ans *= cnt;
}
return ans;
};
//Main code
int res = 0;
int n; cin >> n;
for (int i = 1; i < n; ++i)
{
res = res + getFactorCnt(n - i);
}
cout << res << endl;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input1.txt", "r", stdin);
freopen("output1.txt", "w", stdout);
#endif
// int t; cin >> t;
int t = 1;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgpjb25zdCBpbnQgTiA9IDFlNiArIDE7CmludCBwW05dOwoKCnZvaWQgc29sdmUoKSB7CgoKCS8vQ2FsY3VsYXRpbmcgZmFjdG9ycyB1c2luZyBwcmltZSBzaWV2ZQoJZm9yIChpbnQgaSA9IDI7IGkgPCBOOyArK2kpIHsKCQlpZiAocFtpXSljb250aW51ZTsKCQlmb3IgKGludCBqID0gaTsgaiA8IE47IGogKz0gaSlwW2pdID0gaTsKCX0KCWZvciAoaW50IGkgPSAyOyBpIDwgTjsgKytpKSB7CgkJaWYgKHBbaV0pY29udGludWU7CgkJZm9yIChpbnQgaiA9IGk7IGogPCBOOyBqICs9IGkpcFtqXSA9IGk7Cgl9CgoJYXV0byBnZXRGYWN0b3JDbnQgPSBbJl0oaW50IHgpIHsKCQlpbnQgYW5zID0gMTsKCQl3aGlsZSAoeCA+IDEpIHsKCQkJaW50IHByaW1lID0gcFt4XSwgY250ID0gMTsKCQkJd2hpbGUgKHggJSBwcmltZSA9PSAwKWNudCsrLCB4IC89IHByaW1lOwoJCQlhbnMgKj0gY250OwoJCX0KCQlyZXR1cm4gYW5zOwoJfTsKCgkvL01haW4gY29kZQoJaW50IHJlcyA9IDA7CglpbnQgbjsgY2luID4+IG47Cglmb3IgKGludCBpID0gMTsgaSA8IG47ICsraSkKCXsKCQlyZXMgID0gcmVzICsgZ2V0RmFjdG9yQ250KG4gLSBpKTsKCX0KCgljb3V0IDw8IHJlcyA8PCBlbmRsOwp9CgoKCmludCBtYWluKCkgewoKCiNpZm5kZWYgT05MSU5FX0pVREdFCglmcmVvcGVuKCJpbnB1dDEudHh0IiwgInIiLCBzdGRpbik7CglmcmVvcGVuKCJvdXRwdXQxLnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCgoJLy8gaW50IHQ7IGNpbiA+PiB0OwoJaW50IHQgPSAxOwoKCXdoaWxlICh0LS0pIHsKCQlzb2x2ZSgpOwoJfQoKCXJldHVybiAwOwp9