Cod sursa(job #3246488)
| Utilizator | Data | 3 octombrie 2024 12:56:32 | |
|---|---|---|---|
| Problema | Pairs | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
#define int long long
using namespace std;
ifstream cin("pairs.in");
ofstream cout("pairs.out");
int frecv[1000001],x,i,n,mx;
int ans[1000001];
int32_t main()
{
cin>>n;
for(i=1;i<=n;i++)
{
cin>>x;
frecv[x]++;
mx=max(mx,x);
}
for(int cm=mx;cm>=1;cm--)
{
for(int j=cm;j<=mx;j+=cm)
ans[cm]+=frecv[j];
ans[cm] = (ans[cm]*(ans[cm]-1)) >> 1;
for(int j=2*cm;j<=mx;j+=cm)
ans[cm] -= ans[j];
}
cout<<ans[1];
return 0;
}
