Pagini recente » Cod sursa (job #1489179) | Cod sursa (job #2821890) | Cod sursa (job #1415424) | Cod sursa (job #2487468) | Cod sursa (job #2314569)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("pairs.in") ;
ofstream g("pairs.out") ;
long long nr , fr[10000000] , c[10000000] , maxi = 0 , 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( int i = 2 ; i <= maxi ; i ++ )
if( fr[i] == 0 )
for( int j = i ; j <= maxi ; j = j + i )
fr[j] ++ ;
for ( int i = 2 ; i * i < maxi ; i ++ )
for( int 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 ;
}