Cod sursa(job #357604)

Utilizator petroMilut Petronela petro Data 19 octombrie 2009 21:16:58
Problema Factorial Scor 95
Compilator cpp Status done
Runda CNRV #3 Marime 0.6 kb
#include<stdio.h>
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");

long long  b,a,c,p,k,s;

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