Cod sursa(job #360958)

Utilizator petroMilut Petronela petro Data 2 noiembrie 2009 23:11:47
Problema Factorial Scor 100
Compilator cpp Status done
Runda CNRV #4 Marime 0.55 kb
#include<stdio.h>
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");

long long p;

void rez()
{
	long long s,a,b,c,k,x;
	int ok;
	
	a=1;
	b=x=p*5;
	ok=0;
	
	while(a<=b && ok==0)
	{
		c=(a+b)/2;
		k=5;
		s=0;
		
		while(k<=c)
		{
			s+=c/k;
			k=k*5;
		}
		
		if(s==p) {x=c;ok=1;}
		else if(s>=p) b=c-1;
		     else a=c+1;
	}
	
	if(ok) fprintf(g,"%lld\n",x-x%5);
	else fprintf(g,"-1\n");
}
	
int main()
{
	fscanf(f,"%lld",&p);
	fclose(f);
	
	if(p==0) fprintf(g,"1\n");
	else rez();
	
	fclose(g);
	return 0;
}