Cod sursa(job #357597)

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

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

long long cb(long long a, long long b)
{
	if (a<=b) {c=(a+b)/2;
	             k=5;
                 s=0;
                 while(k<=c)
				 {
					 s+=c/k;
					 k=k*5;
				 }
				 
				 if(s==p) return c;
				 else if(s<p) return cb(c+1,b);
				      else return cb(c,b-1);
	             }
	return -1;
}

int main()
{
	 
	fscanf(f,"%lld",&p);
	
	if(p==0) fprintf(g,"1\n");
	
	a=0;
    b=p*5;	
	
	a=cb(a,b);
	
	if(a==-1) fprintf(g,"-1\n");
	else {while(a%5!=0)
		    a--;
	      fprintf(g,"%lld\n",a);
	      }
	
	fclose(f);
	fclose(g);
	return 0;
}