Cod sursa(job #572140)

Utilizator dmgciubotaruCiubotaru Gabriel dmgciubotaru Data 5 aprilie 2011 04:51:50
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.54 kb
#include "stdio.h"
#include "malloc.h"
#include "string.h"

int main()
{
	FILE *f,*g;
	f=fopen("fact.in","r");
	g=fopen("fact.out","w");
	int x,i,n;
	int v[2][13];
	fscanf(f,"%d",&x);
	if(x==0)
		fprintf(g,"%d",1);
	else
	{
		n=0;
		i=0;
		v[0][0]=1;
		v[1][0]=1;
		while(v[1][n]<x)
		{
			n++;
			v[0][n]=v[0][n-1]*5;
			v[1][n]=v[1][n-1]*5+1;
		}
		for(;n>=0;n--)	
		{
			if(x==v[1][n]*5)
			{
				fprintf(g,"%d",-1);
				return(0);
			}
			while(x>=v[1][n])
			{
				x-=v[1][n];
				i+=v[0][n];
			}
		}
		fprintf(g,"%d",i*5);
	}
	return(0);
	
}