Pagini recente » Cod sursa (job #1317132) | Cod sursa (job #792052) | Cod sursa (job #936538) | Cod sursa (job #3005508) | Cod sursa (job #29812)
Cod sursa(job #29812)
#include <stdio.h>
#include <string.h>
#define nmax 100000
#define smax 129
long n,i,j;
int a[nmax],b[nmax],c[nmax],t[130];
long r[smax][smax][smax];
long long nr;
void divizor(int d,int k)
{
long i,aa,bb,cc,aa1,bb1,cc1;
memset(r,0,sizeof(r));
for (i=0;i<n;++i)
{
aa=a[i]-(a[i]/d)*d;
bb=b[i]-(b[i]/d)*d;
cc=c[i]-(c[i]/d)*d;
if (aa==0) aa1=0;
else aa1=d-aa;
if (bb==0) bb1=0;
else bb1=d-bb;
if (cc==0) cc1=0;
else cc1=d-cc;
nr+=r[aa1][bb1][cc1]*k;
++r[aa][bb][cc];
}
}
int main()
{
char s[40];
int j;
FILE *f;
f=fopen("puteri.in","r");
fscanf(f,"%ld\n",&n);
for (i=0;i<n;++i)
{
fgets(s,40,f);
j=0;
while (s[j]!=' ')
a[i]=a[i]*10+(s[j++]-'0');
++j;
while (s[j]!=' ')
b[i]=b[i]*10+(s[j++]-'0');
++j;
while ((s[j]!='\n')&&(j!=strlen(s)))
c[i]=c[i]*10+(s[j++]-'0');
}
fclose(f);
t[1]=2;
t[2]=3;
t[3]=5;
t[4]=7;
t[5]=11;
t[6]=13;
t[7]=17;
t[8]=19;
t[9]=23;
t[10]=29;
t[11]=31;
t[12]=37;
t[13]=41;
t[14]=43;
t[15]=47;
t[16]=53;
t[17]=59;
t[18]=61;
t[19]=67;
t[20]=71;
t[21]=73;
t[22]=79;
t[23]=83;
t[24]=89;
t[25]=97;
t[26]=101;
t[27]=103;
t[28]=107;
t[29]=109;
t[30]=113;
t[31]=127;
for (i=1;i<=31;++i)
divizor(t[i],1);
for (i=1;i<=31;++i)
for (j=i+1;j<=31;++j)
if (t[i]*t[j]<=128)
divizor(t[i]*t[j],-1);
else break;
divizor(30,1);
divizor(42,1);
divizor(66,1);
divizor(78,1);
divizor(102,1);
divizor(114,1);
divizor(70,1);
divizor(110,1);
divizor(105,1);
freopen("puteri.out","w",stdout);
printf("%lld",nr);
fclose(stdout);
return 0;
}