Pagini recente » Cod sursa (job #343913) | Cod sursa (job #3240392) | Cod sursa (job #2565939) | Cod sursa (job #2467801) | Cod sursa (job #2295365)
# include <fstream>
# define DIM 1000010
using namespace std;
ifstream fin("pairs.in");
ofstream fout("pairs.out");
int d[DIM],f[DIM],nr[DIM],n,x,i,j,val;
long long sol;
int main () {
fin>>n;
for(i=1;i<=n;i++){
fin>>x;
f[x]=1;
}
for(i=1;i<=DIM-5;i++)
d[i]=1;
for(i=2;i<=DIM-5;i++)
if(d[i]==1){
val=0;
for(j=i;j<=DIM-5;j+=i){
if(f[j])
val++;
d[j]*=i;
nr[j]++;
}
if(val==0)
for(j=i;j<=DIM-5;j+=i)
d[j]=0;
}
for(i=1;i<=DIM-5;i++){
if(d[i]==i){
val=0;
for(j=i;j<=DIM-5;j+=i)
if(f[j])
val++;
if(nr[i]%2==0)
sol+=(1LL*val*(val-1))/2;
else
sol-=(1LL*val*(val-1))/2;
}
}
fout<<sol<<"\n";
return 0;
}