#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
const int MAX = 1e8;
bool is_squarefree[MAX + 1];
long long solve(int lim = MAX)
{
memset(is_squarefree, true, sizeof(is_squarefree[0]) * (lim + 1));
long long res = 0;
for (int u = 1; u <= lim; ++u) {
if (is_squarefree[u]) {
for (int p = 2; u * p * p <= lim; ++p) {
is_squarefree[u * p * p] = false;
res += p - 1;
}
}
}
return res;
}
int main()
{
for (int n = 1; n <= 100; ++n) {
cout << solve(n) << " ";
}
cout << endl;
return 0;
for (int n; cin >> n; ) {
cout << solve(n) << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTUFYID0gMWU4OwoKYm9vbCBpc19zcXVhcmVmcmVlW01BWCArIDFdOwpsb25nIGxvbmcgc29sdmUoaW50IGxpbSA9IE1BWCkKewogICAgbWVtc2V0KGlzX3NxdWFyZWZyZWUsIHRydWUsIHNpemVvZihpc19zcXVhcmVmcmVlWzBdKSAqIChsaW0gKyAxKSk7CiAgICAKICAgIGxvbmcgbG9uZyByZXMgPSAwOwogICAgZm9yIChpbnQgdSA9IDE7IHUgPD0gbGltOyArK3UpIHsKICAgICAgICBpZiAoaXNfc3F1YXJlZnJlZVt1XSkgewogICAgICAgICAgICBmb3IgKGludCBwID0gMjsgdSAqIHAgKiBwIDw9IGxpbTsgKytwKSB7CiAgICAgICAgICAgICAgICBpc19zcXVhcmVmcmVlW3UgKiBwICogcF0gPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJlcyArPSBwIC0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKQp7CiAgICBmb3IgKGludCBuID0gMTsgbiA8PSAxMDA7ICsrbikgewogICAgICAgIGNvdXQgPDwgc29sdmUobikgPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwogICAgcmV0dXJuIDA7CiAgICAKICAgIGZvciAoaW50IG47IGNpbiA+PiBuOyApIHsKICAgICAgICBjb3V0IDw8IHNvbHZlKG4pIDw8IGVuZGw7ICAgIAogICAgfQogICAgcmV0dXJuIDA7Cn0=