Cod sursa(job #228470)

Utilizator ditiBilescu Adrian diti Data 7 decembrie 2008 12:47:18
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb

#include<stdio.h>
FILE*f=fopen("fact.in","r"),*g=fopen("fact.out","w");
long a[13][3],i,j,n,p,r,nr;

int main()
{
a[0][1]=0; a[0][2]=1;
a[1][1]=1; a[1][2]=5;
a[2][1]=6; a[2][2]=25;
a[3][1]=31; a[3][2]=125;
a[4][1]=156; a[4][2]=625;
a[5][1]=781; a[5][2]=3125;
a[6][1]=3906; a[6][2]=15625;
a[7][1]=19531; a[7][2]=78125;
a[8][1]=97656; a[8][2]=390625;
a[9][1]=488281; a[9][2]=1953125;
a[10][1]=2441406; a[10][2]=9765625;
a[11][1]=12207031; a[11][2]=48828125;
a[12][1]=61035156; a[12][2]=244140625;
a[13][1]=305175781; a[13][2]=1220703125;


 fscanf(f,"%ld",&p);
 if(!p) {fprintf(g,"1"); return 0;}

 for(i=1;a[i][1]<=p;++i);

 for(j=i-1;j>0 ;j--)
   {nr=0;
   while(p-a[j][1]>=0)
	{p-=a[j][1];
	 nr++;
	}
	r+=a[j][2]*nr;
   }
 fprintf(g,"%ld",r);

return 0;
}