Pagini recente » Cod sursa (job #472328) | Cod sursa (job #2157992) | Cod sursa (job #2470439) | Cod sursa (job #1505425) | Cod sursa (job #2121565)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("puteri.in");
ofstream fout("puteri.out");
int n;
bool d[66][66][66];
unsigned long long a[66][66][66], ct;
int cmmdc(int x, int y, int val)
{
if(x==0 && y==0) return val;
if(x==0 || y==0) return max(x,y);
int r=x%y;
while(r)
{
x=y;
y=r;
r=x%y;
}
return y;
}
void init()
{
int i, j, p, kmd;
for(i=0; i<=64; i++)
for(j=0; j<=64; j++)
for(p=0; p<=64; p++)
{
kmd=cmmdc(i,j,p);
if(kmd>1)
if(p%kmd==0)
d[i][j][p]=1;
}
}
void completeaza(int x, int y, int z)
{
int i, j, p;
for(i=0; i<=64-x; i++)
for(j=0; j<=64-y; j++)
for(p=0; p<=64-z; p++)
if(d[x+i][y+j][z+p])
a[i][j][p]++;
}
int main()
{
int i, x, y, z;
fin>>n;
init();
for(i=1; i<=n; i++)
{
fin>>x>>y>>z;
ct+=a[x][y][z];
completeaza(x,y,z);
}
fout<<ct<<'\n';
return 0;
}