Cod sursa(job #235097)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 22 decembrie 2008 21:11:22
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <stdio.h>

FILE *f,*g;

const p5[15]={0, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125};

long p,i,k,j,m,ok;

long nr0(long x)
{
      long k,i;
      k=0;
      i=1;
      while (x/p5[i]>=1 && i<=13)
            {
             k+=x/p5[i];
             i++;
            } 
     return k;
}

int main()
{
    freopen("fact.in","r",  stdin);
    freopen("fact.out","w", stdout);
    
    scanf("%ld", &p);
    if (!p) 
       printf("1");
     else
      {
                   ok=0;
                   i=p;
                   j=2000000000;
                   while (!ok && i<=j)  
                         {
                              m=(i+j)/2;
                              k=nr0(m);
                              if (k==p)
                                 {
                                       while (nr0(m)==k)
                                             m--;
                                       printf("%ld", m+1);
                                       ok=1;
                                 }
                                else if (k>p) j=m-1;
                                     else i=m+1;
                         }
       if (i>j) printf("-1");
      }
 return 0;
}