Cod sursa(job #198710)

Utilizator TrumpCardPopescu Silviu TrumpCard Data 14 iulie 2008 10:21:09
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#include <limits.h>
long P,z=0;
int c=0,i;
int f(int x)
{int j, t=0;
    for(i=1;i<=x;i++) {j=i;
                      while (j%5==0) {t++;j=j/5;}
                     }
 return t;
}
void cauta(long s, long d, long &z)
{
    int m;
    if(d>s) {m=(s+d)/2;        
             if(f(m)==P) z=m;
             else if (P>f(m)) cauta(m+1,d, z)  ;
                  else cauta(s, m-1, z);
    }
}
int main(void) 
{
    freopen("fact.in", "r", stdin);
    scanf("%ld", &P);
    fclose(stdin);
    long st=0, dr=LONG_MAX;
    cauta(st,dr,z);
    freopen("fact.out", "w", stdout);
    if (z!=0) printf("%d", z); 
    else printf("%d", -1);
    fclose(stdout);
    return 0;
}