这道题目是一个数论,求约数,只不过题目会有一些晦涩难懂
#include <iostream>
#include <algorithm>
#include <bits/stdc++.h>
#define int long long
const int N=1000010;
int n;
int a[N],cnt[N],s[N];
using namespace std;
signed main()
{
cin>>n;
memset(cnt,0,sizeof cnt);
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<<"\n";
}
return 0;
}