Pagini recente » Cod sursa (job #130090) | Cod sursa (job #896869) | Cod sursa (job #1133044) | Cod sursa (job #1789529) | Cod sursa (job #328344)
Cod sursa(job #328344)
#include<fstream.h>
ifstream f1 ("pairs.in");
ofstream f2 ("pairs.out");
int apar[1000001],calc[1000001],max=-1000001;
void calc_prim()
{
long long i,j;
calc[1]=-1;
for(i=2;i<=max;i++)
if(calc[i]==0)
for(j=i;j<=max;j+=i)
if(calc[j]!=-1)
{
calc[j]++;
if((j/i)%i==0) calc[j]=-1;
}
}
int main()
{
long long i,j,div,n,k,nr=0;
f1>>n;
for(i=1;i<=n;i++)
{
f1>>k;
if(k>max)
max=k;
apar[k]=1;
}
calc_prim();
for(i=2;i<=max;i++)
{
div=0;
if(calc[i]<=0) continue;
else for(j=i;j<=max;j=j+i) if(apar[j]) div++;
if(calc[i]%2==1) nr+=div*(div-1)/2;
else nr-=div*(div-1)/2;
}
nr=n*(n-1)/2-nr;
f2<<nr;
return 0;
}