#include <bits/stdc++.h>
using namespace std;
#define fast ios::sync_with_stdio(false); cin.tie(nullptr);
#define ll long long
#define endl '\n'
#define all(v) (v).begin(), (v).end()
#define rall(v) (v).rbegin(), (v).rend()
const int oo = 1e9;
const ll INF = 1e18;
const ll MOD = 1e9+7;
const int N = 10;
ll dp[N+1];
long long binpow(long long a, long long b, long long m) {
a %= m;
long long res = 1;
while (b > 0) {
if (b & 1)
res = res * a % m;
a = a * a % m;
b >>= 1;
}
return res;
}
void solve(){
for(int i=N ; i>=1 ; i--){
dp[i] = binpow(2 , N/i , MOD) - 1;
for(ll j = 2*i ; j<=N ; j+=i){
dp[i]-=dp[j];
}
}
for(int i=1 ; i<=N ; i++){
cout<<dp[i]<<"\n";
}
}
int main(){
fast
int t = 1; //cin >> t;
while(t--) solve();
}
/*
* at least and exact
* 1 2 3 4 5 6 7 8 9 10
* gcd = 10 -> 2^(10/10)-1 = 1 -> {10}
* gcd = 9 -> 2^(10/9)-1 = 1 -> {9}
* gcd = 8 -> 2^(10/8)-1 = 1 -> {8}
* gcd = 7 -> 2^(10/7)-1 = 1 -> {7}
* gcd = 6 -> 2^(10/6)-1 = 1 -> {6}
* gcd = 5 -> 2^(10/5)-1 - gcd(10) = 3-1 = 2 -> {5} {5 10}
* gcd = 4 -> 2^(10/4)-1 - gcd(8) = 3-1 = 2 -> {4} {4 8}
* gcd = 3 -> 2^(10/3)-1 - gcd(6) - gcd(9) = 7-1-1 = 5 -> {3} {3 6} {3 9} {6 9} {3 6 9}
* gcd = 2 -> 2^(10/2)-1 - gcd(4) - gcd(6)-gcd(8) - gcd(10) = 31-2-1-1-1 = 26
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGZhc3QgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKG51bGxwdHIpOwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGFsbCh2KSAodikuYmVnaW4oKSwgKHYpLmVuZCgpCiNkZWZpbmUgcmFsbCh2KSAodikucmJlZ2luKCksICh2KS5yZW5kKCkKCmNvbnN0IGludCBvbyA9IDFlOTsKY29uc3QgbGwgSU5GID0gMWUxODsKY29uc3QgbGwgTU9EID0gMWU5Kzc7CmNvbnN0IGludCBOID0gMTA7CmxsIGRwW04rMV07Cgpsb25nIGxvbmcgYmlucG93KGxvbmcgbG9uZyBhLCBsb25nIGxvbmcgYiwgbG9uZyBsb25nIG0pIHsKICAgIGEgJT0gbTsKICAgIGxvbmcgbG9uZyByZXMgPSAxOwogICAgd2hpbGUgKGIgPiAwKSB7CiAgICAgICAgaWYgKGIgJiAxKQogICAgICAgICAgICByZXMgPSByZXMgKiBhICUgbTsKICAgICAgICBhID0gYSAqIGEgJSBtOwogICAgICAgIGIgPj49IDE7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgoKdm9pZCBzb2x2ZSgpewogICAgZm9yKGludCBpPU4gOyBpPj0xIDsgaS0tKXsKICAgICAgICBkcFtpXSA9IGJpbnBvdygyICwgTi9pICwgTU9EKSAtIDE7CiAgICAgICAgZm9yKGxsIGogPSAyKmkgOyBqPD1OIDsgais9aSl7CiAgICAgICAgICAgIGRwW2ldLT1kcFtqXTsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGk9MSA7IGk8PU4gOyBpKyspewogICAgICAgIGNvdXQ8PGRwW2ldPDwiXG4iOwogICAgfQp9CgppbnQgbWFpbigpewogICAgCiAgICBmYXN0CiAgICAKICAgIGludCB0ID0gMTsgLy9jaW4gPj4gdDsKICAgIAogICAgd2hpbGUodC0tKSBzb2x2ZSgpOwp9CgovKgogKiBhdCBsZWFzdCBhbmQgZXhhY3QKICogMSAyIDMgNCA1IDYgNyA4IDkgMTAKICogZ2NkID0gMTAgLT4gMl4oMTAvMTApLTEgPSAxIC0+IHsxMH0gCiAqIGdjZCA9IDkgLT4gMl4oMTAvOSktMSA9IDEgLT4gezl9CiAqIGdjZCA9IDggLT4gMl4oMTAvOCktMSA9IDEgLT4gezh9CiAqIGdjZCA9IDcgLT4gMl4oMTAvNyktMSA9IDEgLT4gezd9CiAqIGdjZCA9IDYgLT4gMl4oMTAvNiktMSA9IDEgLT4gezZ9CiAqIGdjZCA9IDUgLT4gMl4oMTAvNSktMSAtIGdjZCgxMCkgPSAzLTEgPSAyIC0+IHs1fSB7NSAxMH0KICogZ2NkID0gNCAtPiAyXigxMC80KS0xIC0gZ2NkKDgpID0gMy0xID0gMiAtPiB7NH0gezQgOH0KICogZ2NkID0gMyAtPiAyXigxMC8zKS0xIC0gZ2NkKDYpIC0gZ2NkKDkpID0gNy0xLTEgPSA1IC0+IHszfSB7MyA2fSB7MyA5fSB7NiA5fSB7MyA2IDl9CiAqIGdjZCA9IDIgLT4gMl4oMTAvMiktMSAtIGdjZCg0KSAtIGdjZCg2KS1nY2QoOCkgLSBnY2QoMTApID0gMzEtMi0xLTEtMSA9IDI2CiAqLw==