Pagini recente » Cod sursa (job #1160392) | Cod sursa (job #833895) | Cod sursa (job #1787932) | Cod sursa (job #138257) | Cod sursa (job #2314581)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("pairs.in") ;
ofstream g("pairs.out") ;
long long nr , fr[1000020] , c[1000020] , maxi , n , sol , t ;
int main()
{
f >> n ;
for( int i = 1 ; i <= n ; i ++ )
{
long long x ;
f >> x ;
c[x] = 1 ;
maxi = max( x , maxi ) ;
}
for(long long i = 2; i < maxi; i++)
{
if(fr[i] == 0)
{
for(long long j = i; j <= maxi; j = j + i)
fr[j]++;
}
}
for(long long i = 2; i * i <= maxi; i++)
{
for(long long j = i * i; j <= maxi; j = j + i * i)
fr[j] = -1;
}
for(long long i = 2; i <= maxi; i++)
{
if(fr[i] == -1)
continue;
long long nr = 0;
for(long long j = i; j <= maxi; j = j+ i)
{if(c[j] == 1)
nr++;}
t = nr * (nr - 1) / 2;
if(fr[i] % 2 == 0)
sol = sol - t;
else sol = sol + t;
}
t = n * (n - 1) / 2;
g << t - sol ;
return 0 ;
}