#include <bits/stdc++.h>
using namespace std;
int main()
{
// freopen("bhlt_bai1.inp", "r", stdin);
// freopen("bhlt_bai1.out", "w", stdout);
long long n, x, a[1000005], b[1000005], r[1000005], mx = 0; cin >> n;
memset(r, 0, sizeof(r));
long long s1 = 0, s2 = 0;
for(int i = 0; i < n; i++){
cin >> x;
s1 += x;
s2 += x * x;
a[x]++;
mx = max(mx, x);
}
s1 = (s1 * s1 - s2) / 2;
for(int i = 1; i <= mx; i++){
for(int j = i; j <= mx; j += i){
b[i] += a[j];
}
}
for(int i = mx; i > 0; i--){
r[i] = b[i] * (b[i] - 1) / 2;
for(int j = i + i; j <= mx; j+=i){
r[i] -= r[j];
}
}
cout << s1 << " ";
long long res = 0;
for(int i = 1; i <= mx; i++) res += r[i] * s1 / i;
cout << res << endl;
for(int i = 0; i <= mx; i++) cout << r[i] << " ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIAp7CgkvLyBmcmVvcGVuKCJiaGx0X2JhaTEuaW5wIiwgInIiLCBzdGRpbik7CgkvLyBmcmVvcGVuKCJiaGx0X2JhaTEub3V0IiwgInciLCBzdGRvdXQpOwogICAgbG9uZyBsb25nIG4sIHgsIGFbMTAwMDAwNV0sIGJbMTAwMDAwNV0sIHJbMTAwMDAwNV0sIG14ID0gMDsgY2luID4+IG47CgltZW1zZXQociwgMCwgc2l6ZW9mKHIpKTsKCWxvbmcgbG9uZyBzMSA9IDAsIHMyID0gMDsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICBjaW4gPj4geDsKICAgICAgczEgKz0geDsKICAgICAgczIgKz0geCAqIHg7CiAgICAgIGFbeF0rKzsKICAgICAgbXggPSBtYXgobXgsIHgpOwogICAgfQogICAgczEgPSAoczEgKiBzMSAtIHMyKSAvIDI7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG14OyBpKyspewogICAgICBmb3IoaW50IGogPSBpOyBqIDw9IG14OyBqICs9IGkpewogICAgICAgIGJbaV0gKz0gYVtqXTsKICAgICAgfQogICAgfQoJCiAgICBmb3IoaW50IGkgPSBteDsgaSA+IDA7IGktLSl7CiAgICAJcltpXSA9IGJbaV0gKiAoYltpXSAtIDEpIC8gMjsKICAgICAgZm9yKGludCBqID0gaSArIGk7IGogPD0gbXg7IGorPWkpewogICAgICAgIHJbaV0gLT0gcltqXTsKICAgICAgfQoKICAgIH0KICAgIGNvdXQgPDwgczEgPDwgIiAiOwogICAgbG9uZyBsb25nIHJlcyA9IDA7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG14OyBpKyspIHJlcyArPSAgcltpXSAqIHMxICAvIGk7CiAgICBjb3V0IDw8IHJlcyA8PCBlbmRsOwogICAgZm9yKGludCBpID0gMDsgaSA8PSBteDsgaSsrKSBjb3V0IDw8IHJbaV0gPDwgIiAiOwogICAgCiAgICAKICAgIHJldHVybiAwOwp9Cg==