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