Cod sursa(job #412891)

Utilizator gerrobRobert Gerbicz gerrob Data 6 martie 2010 21:46:07
Problema Factorial Scor 95
Compilator c Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <stdio.h>


long long int fact(long long int n,int p)  {
    long long int s=0;
    
    while(n)  n/=p,s+=n;
    return s;
}

int main()  {
	
	  long long int n,s,s2,pow2;
	  FILE* in=fopen("fact.in","r");
	  FILE* out=fopen("fact.out","w");
	
	  fscanf(in,"%lld",&n);
	
	  pow2=1;
	  while(pow2<=n)  pow2<<=1;
	  pow2<<=3;
	
	  s=-1;
	  while(pow2)  {
	        s2=s+pow2;
	        if(fact(s2,5)<n)  s=s2;
	        pow2>>=1;
	  }
	  s++;
	  if(fact(s,5)!=n)  s=-1;
	  
	  fprintf(out,"%lld\n",s);
	  fclose(in);
	  fclose(out);
	
	return 0;
}