Cod sursa(job #963073)

Utilizator thewildnathNathan Wildenberg thewildnath Data 16 iunie 2013 14:54:46
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<math.h>
int ok(int n)
{
     int s=0,nr=5;
     while(n/nr)
     {
          s=s+n/nr;
          nr=nr*5;
     }
     return s;
}
void cautb(int p)
{
    int s=1,d=5*p,m,aux;
    bool l=0;
    if(p==0)
    {
        printf("1\n");
        return;
    }
    while(s<=d && !l)
    {
        m=s+(d-s)/2;
        aux=ok(m);
        if(aux<p)
            s=m+1;
        else
            if(aux==p)
                l=1;
            else
                d=m-1;
    }
    if(!l)
        printf("-1\n");
    else
    {
        while(ok(m-1)==p)
            m--;
        printf("%d\n",m);
    }
}
int main()
{
     freopen("fact.in","r",stdin);
     freopen("fact.out","w",stdout);
     int p,aux;
     scanf("%d",&p);
     cautb(p);
     return 0;
}