Cod sursa(job #173019)

Utilizator georgebGeorge Buzoianu georgeb Data 7 aprilie 2008 09:28:16
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#include<math.h>
FILE *f1,*f2;
int main()
{long unsigned n,k=3,i,j,x,np[200],fi,c=0,ok;

f1=fopen("fractii.in","r");
f2=fopen("fractii.out","w");
fscanf(f1,"%lu",&n);np[c++]=2;
for(i=3;i<=n;i++)
{fi=i;
 x=i;
 j=0; //parcurgere np
 ok=0;//daca i are un divizor prim sau
			//nu
 while((np[j]<=x/2)&&(j<c))
 {if(x%np[j]==0)                 //cauta divizorii primi ai lui x
 {ok=1;fi=fi/np[j]*(np[j]-1);}
		j++;}
		if(!ok)
		{np[c++]=i;fi=i-1;}


		k=k+2*fi;//numara nr de fractii ireductibile pana la i

				 }







fprintf(f2,"%lu\n",k);
fclose(f1);
fclose(f2);
return 0;}