这道题目是一个数论,求约数,只不过题目会有一些晦涩难懂

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