Pagini recente » Cod sursa (job #1423641) | Cod sursa (job #1820947) | Cod sursa (job #654014) | Cod sursa (job #1244398) | Cod sursa (job #9250)
Cod sursa(job #9250)
#include<stdio.h>
int n;
struct nod
{
int nr, fr;
nod *urm;
};
nod *prim, *ultim;
void creare()
{
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");
int s=0;
nod *p;
p=prim;
while(p)
{
s=s+p->fr;
p=p->urm;
}
fprintf(f, "%d", s);
fclose(f);
}
int cmmdc(int a, int b)
{
int r;
while(a%b!=0)
{
r=a%b;
a=b;
b=r;
}
return b;
}
void lista()
{
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, "%d", &n);
fclose(f);
creare();
fclose(f);
lista();
adunare();
return 0;
}