Pagini recente » Cod sursa (job #2016442) | Statistici Nagy Magynzts Matyas (Tom3s) | Cod sursa (job #2719945) | Cod sursa (job #2004714) | Cod sursa (job #478736)
Cod sursa(job #478736)
#include<fstream>
#include<cstring>
using namespace std;
const char iname[]="puteri.in";
const char oname[]="puteri.out";
const int maxn=65;
ifstream f(iname);
ofstream g(oname);
int a[maxn][maxn][maxn],i,j,x,y,z,val[maxn*3],n;
long long rez;
long long calc(int x)
{
int b[maxn][maxn][maxn],i,j,k;
long long rez=0;
memset(b,0,sizeof(b));
for(i=0;i<maxn;++i)
for(j=0;j<maxn;++j)
for(k=0;k<maxn;++k)
b[i%x][j%x][k%x]+=a[i][j][k];
for(i=0;i<min(x,maxn);++i)
for(j=0;j<min(x,maxn);++j)
for(k=0;k<min(x,maxn);++k)
if(x-i<maxn&&x-j<maxn&&x-k<maxn)
rez+=b[i][j][k]*(b[(x-i)%x][(x-j)%x][(x-k)%x]-(i==(x-i)%x&&j==(x-j)%x&&k==(x-k)%x));
return rez;
}
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>x>>y>>z,++a[x][y][z];
for(i=2;i<=135;++i)
if(val[i]==0)
{
for(j=i*i;j<=n;j+=i*i)
val[j]=-1;
for(j=i;j<=n;j+=i)
if(val[j]!=-1)
++val[j];
rez+=calc(i);
}
else
if(val[i]>0)
if(val[i]&1)
rez+=calc(i);
else
rez-=calc(i);
g<<rez/2<<"\n";
}