#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;
}