Pagini recente » Cod sursa (job #536029) | Cod sursa (job #1409748) | Cod sursa (job #908477) | Cod sursa (job #1434193) | Cod sursa (job #9237)
Cod sursa(job #9237)
#include<stdio.h>
long int n;
struct nod
{
long int nr, fr;
nod *urm;
};
nod *prim, *ultim;
void creare()
{
long int i;
nod *p;
for(i=1; i<=n; i++)
{
p=new nod;
p->nr=i;
p->fr=n-1;
p->urm=NULL;
if(prim==NULL)
prim=ultim=p;
else
{
ultim->urm=p;
ultim=p;
}
}
prim->fr=prim->fr+1;
}
void adunare()
{
FILE *f=fopen("fractii.out", "w");
long int s=0;
nod *p;
p=prim;
while(p)
{
s=s+p->fr;
p=p->urm;
}
fprintf(f, "%ld", s);
fclose(f);
}
int cmmdc(long int a, long int b)
{
long int r;
while(a%b!=0)
{
r=a%b;
a=b;
b=r;
}
return b;
}
void lista()
{
long int t;
nod *p, *q;
p=prim->urm;
while(p)
{
q=p->urm;
while(q)
{
t=cmmdc(p->nr, q->nr);
if(t!=1)
{
p->fr=p->fr-1;
q->fr=q->fr-1;
}
q=q->urm;
}
p=p->urm;
}
}
int main()
{
FILE *f=fopen("fractii.in", "r");
fscanf(f, "%ld", &n);
fclose(f);
creare();
fclose(f);
lista();
adunare();
return 0;
}