Pagini recente » Cod sursa (job #950512) | Cod sursa (job #1183404) | Cod sursa (job #2570363) | Cod sursa (job #2553265) | Cod sursa (job #3266737)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("puteri.in");
ofstream fout("puteri.out");
int nr[129][129][129];
int a[100001], b[100001], c[100001], n;
int bit[129], rest[129];
int prim[129];
long long sol = 0;
int calcCard(int mod)
{
long long sol = 0;
memset(nr, 0, sizeof(nr));
for(int i = 0; i <= 128; i++)
{
rest[i] = i%mod;
}
for(int i = 1; i <= n; i++)
{
int ra = rest[mod - rest[a[i]]];
int rb = rest[mod - rest[b[i]]];
int rc = rest[mod - rest[c[i]]];
if(ra <= 64 && rb <= 64 && rc <= 64)
sol += nr[ra][rb][rc];;
nr[rest[a[i]]][rest[b[i]]][rest[c[i]]]++;
}
return sol;
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> a[i] >> b[i] >> c[i];
}
for(int i = 2; i <= 128; i++)
{
prim[i] = 1, bit[i] = -1;
}
for(int p = 2; p <= 128; p++)
{
if(prim[p])
{
for(int i = p; i <= 128; i += p)
prim[i] = 0, bit[i] *= -1;
for(int i = p*p; i <= 128; i += p*p)
bit[i] = 0;
}
if(bit[p] != 0)
sol += bit[p] * calcCard(p);
}
fout << sol;
}