/*
直接求一个数的约数个数不好求,可以反向求一个数的倍数是哪些数。
*/
#include <iostream>
using namespace std;
const int N = 1000010;
int n;
int a[N] , cnt[N];//cnt[i]表示i出现的次数
int s[N];//s[i]表示i的约数个数
int main()
{
cin >> n;
for(int i = 0 ; i < n ; i++) cin >> a[i] , cnt[a[i]]++;
for(int i = 1 ; i < N ; i++)
for(int j = i ; j < N ; j += i)
s[j] += cnt[i];
for(int i = 0 ; i < n ; i++) cout << s[a[i]] - 1 << endl;//要减去自身
return 0;
}