Pagini recente » Cod sursa (job #2714259) | Cod sursa (job #2860718) | Cod sursa (job #2470533) | Cod sursa (job #698898) | Cod sursa (job #773353)
Cod sursa(job #773353)
#include<fstream>
using namespace std;
ifstream f("pairs.in");
ofstream g("pairs.out");
long long n,i,j,sol,maxi,x,nr,d[1000001];
bool v[1000001];
int main()
{f>>n;
sol=n*(n-1)/2;
for(i=1;i<=n;++i)
{f>>x;
if(x>maxi)
maxi=x;
v[x]=1;
}
for(i=2;i<=maxi;++i)
for(j=i;j<=maxi;j+=i)
d[j]++;
for(i=2;i*i<=maxi;++i)
for(j=i*i;j<=maxi;j+=i*i)
d[j]=-1;
for(i=2;i<=maxi;++i)
if(d[i]!=-1)
{nr=0;
for(j=i;j<=maxi;j+=i)
if(v[j])
++nr;
if(d[i]%2==0)
sol+=nr*(nr-1)/2;
else
sol-=nr*(nr-1)/2;
}
g<<sol<<'\n';
return 0;
}