Pagini recente » Cod sursa (job #2231628) | Cod sursa (job #1803276) | Cod sursa (job #2593833) | Cod sursa (job #1424687) | Cod sursa (job #109666)
Cod sursa(job #109666)
#include <stdio.h>
#define NMAX 100001
int x[NMAX], n;
long long num;
int cmmdc(int u, int v)
{
int k, dif, m = 0;
if ( u == 0 || v == 0)
return u|v;
for ( k = 0; ( (u|v)&1 )==0; k++)
{
u>>=1;
v>>=1;
}
while ( (u&1) == 0)
u>>=1;
do
{
while ( ( v&1) == 0 )
v>>=1;
if ( u <= v)
v = v - u;
else
{
dif = u - v;
u = v;
v = dif;
}
}while (v);
m = m | (1<<k);
return m * u;
}
int main()
{
int i, j;
freopen("pairs.in", "r", stdin);
freopen("pairs.out", "w", stdout);
scanf("%d", &n);
for ( i = 1; i <= n; i++)
scanf("%d", &x[i]);
for ( i = 1; i < n; i++)
for ( j = i+1; j <= n; j++)
if ( (x[i]|x[j])&1 == 1 )
if ( cmmdc(x[i],x[j]) == 1)
num++;
printf("%lld", num);
return 0;
}