Cod sursa(job #1409545)
| Utilizator | Data | 30 martie 2015 16:20:50 | |
|---|---|---|---|
| Problema | Pairs | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include<fstream>
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int v[100005],p[100005];
int f[1000005],w[1000005];
long long nr,sol,k,n,i,j;
int main(){
fin>>n;
for(i=1;i<=n;i++){
fin>>v[i];
f[v[i]]=1;
}
k=0;
for(i=2;i<=1000005;i++){
if(w[i]==0){
if(f[i]==1){
nr++;
}
k++;
for(j=i+i;j<=1000005;j+=i){
if(f[j]==1 && f[i]==1){
p[k]++;
}
w[j]=1;
}
}
}
sol=((nr*nr*1LL-nr)/2);
for(i=1;i<=nr;i++){
sol+=(n-nr-p[i]);
}
fout<<sol<<"\n";
return 0;
}
