Cod sursa(job #3219322)

Utilizator SerbanCaroleSerban Carole SerbanCarole Data 30 martie 2024 20:41:52
Problema Pairs Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream cin("pairs.in");
ofstream cout("pairs.out");
using pii = pair<int,int>;
const int nmax = 1e6 + 1;
int n , a , cnt[nmax];
long long siv[nmax];
signed main()
{
    cin >> n;
    int mx = 0;
    for(int i = 1 ; i <= n ; ++i)
    {
        cin >> a;
        cnt[a]++;
        mx = max(mx,a);
    }
    for(int i = 1 ; i <= mx ; ++i)
    {
        for(int j = i ; j <= mx ; j += i)
        {
            siv[i] += cnt[j];
        }
    }
    for(int i = mx ; i >= 1 ; i--)
    {
        siv[i] = (siv[i]-1)*siv[i]/2;
        for(int j = i+i ; j <= mx ; j += i)
        {
            siv[i] -= siv[j];
        }
    }
    cout << siv[1];
    return 0;
}