Cod sursa(job #49087)

Utilizator the_dragon_of_rockTzogorean Alex the_dragon_of_rock Data 5 aprilie 2007 12:20:37
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<fstream.h>
long long int n,p;

long nrz( long c )
{
     long p = 0;
     while( c )
     {
            p += c/5;
            c /= 5;
     }
     return p;
}

long long int binar(long long int st, long long int dr)
{
    long long int m=(st+dr)/2;
    if (nrz(m)>p && nrz(m-5)<p)   return -10000;
    if (nrz(m)==p)
        return m;
    else
        if (nrz(m)<p)
            return binar(m,dr);
        else
            return binar(st,m);
}


int main()
{
    ifstream in("fact.in"); 
    in>>p;
    
    ofstream out("fact.out");
    long long int n;
    if (p!=0)
        {
            n=binar(0,500000000);
            if (n==-10000)   out<<-1;
            else
                {
                    while(n%5!=0)
                        n--;
                    out<<n;
                }
        }
    else
        out<<1;
    
    return 0;
}