Pagini recente » Cod sursa (job #659452) | Cod sursa (job #300382) | Cod sursa (job #997221) | Cod sursa (job #3195509) | Cod sursa (job #109505)
Cod sursa(job #109505)
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
const long int MAXBUFF=800100;
const long int MAXN=100000;
long int pare[MAXN+1],impare[MAXN+1],nrp,nri,n;
void citire()
{
FILE *f=fopen("pairs.in","r");
fscanf(f,"%ld",&n);
char buffer[MAXBUFF],*p;
fread(buffer,1,MAXBUFF-2,f);
p=strtok(buffer," \n");
long int i,x;
for (i=1;i<=n;i++)
{
x=atoi(p);
if (x%2==0) pare[++nrp]=x;
else impare[++nri]=x;
p=strtok(NULL," \n");
}
fclose(f);
}
long long int calculeaza()
{
long long int sol=0;
long int i,j,a,b,r;
for (i=1;i<=nrp;i++)
for (j=1;j<=nri;j++)
{
if (pare[i]>impare[j])
{
a=pare[i];
b=impare[j];
}
else
{
a=impare[j];
b=pare[i];
}
do
{
r=a%b;
a=b;
b=r;
}
while (b);
if (a==1) sol++;
}
for (i=1;i<=nri;i++)
for (j=i+1;j<=nri;j++)
{
if (impare[i]>impare[j])
{
a=impare[i];
b=impare[j];
}
else
{
a=impare[j];
b=impare[i];
}
do
{
r=a%b;
a=b;
b=r;
}
while (b);
if (a==1) sol++;
}
return sol;
}
void scrie(long long int sol)
{
FILE *g=fopen("pairs.out","w");
fprintf(g,"%lld\n",sol);
fcloseall();
}
int main()
{
long long int sol;
citire();
sol=calculeaza();
scrie(sol);
return 0;
}