Cod sursa(job #1161395)

Utilizator BologaDragosBologa Dragos BologaDragos Data 31 martie 2014 11:09:37
Problema Factorial Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>

using namespace std;

ifstream f("fact.in") ;
ofstream g("fact.out") ;

int main()
{
    int n,p,u,k,nr,mij,s,w,ok=0 ;
    f>>nr ;
    if(nr==0)
        g<<1 ;
    else
    {
    if(nr==1)
        g<<5 ;
    else
    {

    p=1 ;
    u=50000001 ;
    while(p<=u)
    {
        mij=p+(u-p)/2 ;
        s=0 ;
        k=5 ;
        w=mij ;
        while(mij/k>0)
        {
            s+=mij/k ;
            k*=5 ;
        }
        mij=w ;
        if(s==nr)
        {
            while(s==nr)
            {
                mij-- ;
                s=0 ;
                k=5 ;
                while(mij/k>0)
                {
                    s+=mij/k ;
                    k*=5 ;
                }

            }
            g<<mij+1 ;
            ok=1 ;
            break ;
        }
        if(s<nr)
            p=mij+1 ;
        else
            u=mij-1 ;
    }
    if(ok==0)
    {
        mij-- ;
        s=0 ;
        k=5 ;
        while(mij/k>0)
        {
            s+=mij/k ;
            k*=5 ;
        }
        if(s==nr)
        {
            ok=1 ;
            g<<mij ;
        }
    }
    if(ok==0)
        g<<"-1" ;
    }
    }
    return 0;
}