Pagini recente » Cod sursa (job #2914126) | Cod sursa (job #916634) | Cod sursa (job #1350651) | Cod sursa (job #858397) | Cod sursa (job #25508)
Cod sursa(job #25508)
#include <stdio.h>
#define FOR(i,a,b) for (int (i) = (a); i < (int)(b); i++)
int nr[65][65][65];
int nr2[65][65][130];
int gcd[130][130];
inline int getgcd( int a, int b )
{
if (b == 0) return a;
if (a == 0) return b;
int c;
for (; a % b; )
{
c = a % b;
a = b;
b = c;
}
return b;
}
int main()
{
freopen("puteri.in", "rt", stdin);
freopen("puteri.out", "wt", stdout);
int N;
scanf("%d", &N);
FOR(i,0,N)
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
nr[a][b][c]++;
}
FOR(a,0,129) FOR(b,0,129)
gcd[a][b] = getgcd(a, b);
long long NR = 0;
FOR(a,0,65) FOR(b,0,65) FOR(c,0,65)
{
if (!nr[a][b][c])
continue;
NR += (long long)nr[a][b][c] * (nr[a][b][c] - 1) >> 1;
FOR(a2,a,65) FOR(b2,(a2 == a ? b : 0),65)
{
if (gcd[a + a2][b + b2] == 1)
continue;
FOR(c2,(a2 == a && b2 == b) ? c + 1 : 0,65)
{
if (gcd[ gcd[a + a2][b + b2] ][c + c2] == 1)
continue;
if (!nr[a2][b2][c2])
continue;
NR += (long long)nr[a][b][c] * nr[a2][b2][c2];
}
}
}
printf("%lld\n", NR);
return 0;
}