Pagini recente » Cod sursa (job #2632835) | Cod sursa (job #49925) | Cod sursa (job #981130) | Cod sursa (job #3201992) | Cod sursa (job #2451213)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("pairs.in");
ofstream g ("pairs.out");
long long n,x, maxx, ciur[1000002],s;
bool isinSet[1000002], ispp[1000002];
int main()
{
f>>n;
for(int i=1;i<=n;++i)
{
f>>x;
isinSet[x]=true;
maxx=max(maxx,x);
}
for(int i=2;i<=maxx;++i)
{
if(!ciur[i])
{
for(int j=i;j<=maxx;j+=i)
{
++ciur[i];
if(j % (i*i)==0)
ispp[j]=true;
}
}
}
for(int i=2;i<=maxx;++i)
{
if(!ispp[i])
{
long long nr=0;
for(int j=i;j<=maxx;j+=i)
{
if(isinSet[j]) ++nr;
}
if(ciur[i]%2==1) s= s + 1LL * (nr*(nr-1)) /2;
else s= s - 1LL * (nr*(nr-1)) /2;
}
}
g<<1LL*(n*(n-1))/2 - s;
return 0;
}