Cod sursa(job #3311962)
| Utilizator | Data | 25 septembrie 2025 09:12:20 | |
|---|---|---|---|
| Problema | Pairs | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN=1e6;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int f[MAXN+1],ans[MAXN+1];
signed main() {
int n,i,j,a;
fin>>n;
for(i=1; i<=n; i++) {
fin>>a;
f[a]++;
}
for(i=MAXN; i>0; i--) {
for(j=i; j<=MAXN; j+=i){
ans[i]+=f[j];
}
ans[i]=(ans[i]*(ans[i]-1))/2;
for(j=2*i; j<=MAXN; j+=i){
ans[i]-=ans[j];
}
}
fout<<ans[1];
return 0;
}
