Cod sursa(job #1040622)

Utilizator horobamarcelHoroba Marcel Emanuel horobamarcel Data 24 noiembrie 2013 18:27:56
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
 
using namespace std;
 
int p;
 
inline int NrZero(int n)
{
    int put=5,sol=0;
    while(put<=n)
    {
        sol+=n/put;
        put*=5;
    }
    return sol;
}
 
int main()
{
    int a,b,mij,x,sol;
    freopen ("fact.in","r",stdin);
    freopen ("fact.out","w",stdout);
    scanf("%d", &p);
    if(p==0)
        printf("1\n");
    else
    {
        a=1;b=1000000000;sol=0;
        while(a<=b)
        {
            mij=(a+b)/2;
            x=NrZero(mij);
            if(x>p)
                b=mij-1;
            else
                if(x<p)
                    a=mij+1;
                else
                {
                    sol=mij;
                    a=b+1;
                }
        }
        if(sol==0)
            printf("-1\n");
        else
        {
            while(sol%5)
                sol--;
            printf("%d\n", sol);
        }
    }
    return 0;
}