Pagini recente » Cod sursa (job #1557762) | Cod sursa (job #530366) | Cod sursa (job #1757038) | Cod sursa (job #1131434) | Cod sursa (job #238252)
Cod sursa(job #238252)
#include <stdio.h>
int comb2(int n)
{
return n*(n-1)/2;
}
bool prim(int n)
{
int i;
if (n<2)
return false;
if (n==2)
return true;
if (n%2==0)
return false;
for (i=3; i*i<=n; i+=2)
if (n%i==0)
return false;
return true;
}
int main()
{
freopen("pairs.in","r",stdin);
freopen("pairs.out","w",stdout);
int n,i,cont,a[100005],j,nrdiv,perechi,max=0;
scanf("%d",&n);
for (i=1; i<=n; i++)
scanf("%d",&a[i]);
perechi=comb2(n);
for (i=1; i<=n; i++)
if (a[i]>max)
max=a[i];
for (i=2; i<=max; i++)
{
nrdiv=0;
for (j=1; j<=n; j++)
if (a[j]%i==0)
nrdiv++;
if (prim(i))
perechi-=comb2(nrdiv);
else
perechi+=comb2(nrdiv);
}
printf("%d",perechi);
return 0;
}