Pagini recente » Cod sursa (job #718327) | Cod sursa (job #231) | Cod sursa (job #1401667) | Cod sursa (job #991958) | Cod sursa (job #2720064)
#include <bits/stdc++.h>
#define NMAX 100005
using namespace std;
ifstream fin("puteri.in");
ofstream fout("puteri.out");
typedef long long ll;
int a[NMAX], b[NMAX], c[NMAX], mod[130], fr[130][130][130], n;
ll solve(int i){
memset(mod, 0, sizeof(mod));
memset(fr, 0, sizeof(fr));
for(int j = 0; j <= 128; ++j)
mod[j] = j % i;
ll ans = 0;
int axA, axB, axC;
for(int k = 1; k <= n; ++k){
axA = mod[i - mod[a[k]]];
axB = mod[i - mod[b[k]]];
axC = mod[i - mod[c[k]]];
if(axA <= 64 && axB <= 64 && axC <= 64)
ans += fr[axA][axB][axC];
fr[mod[a[k]]][mod[b[k]]][mod[c[k]]]++;
}
return ans;
}
int main()
{
fin >> n;
for(int i = 1; i <= n; ++i)
fin >> a[i] >> b[i] >> c[i];
ll rez = 0;
for(int i = 2; i <= 128; ++i){
int semn = -1;
int ax = i;
for(int j = 2; j <= i; ++j){
int cn = 0;
while(ax % j == 0){
++cn;
ax /= j;
}
if(cn > 1)
semn = 0;
if(cn == 1)
semn *= -1;
}
if(semn != 0)
rez += semn * solve(i);
}
fout << rez << '\n';
return 0;
}