Cod sursa(job #1490324)

Utilizator AcuasPopescu Nicolae-Aurelian Acuas Data 23 septembrie 2015 10:39:16
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long p,i;
long n;
int k;
long numar_zero(long n){
    long x=5;
    int k=0;
    while(x<=n){
        k+=n/x;
        x*=5;
    }
    return k;
}
int main()
{
    f>>p;
    ///solutie 20 de puncte
    /**if(p==0)
        g<<1<<'\n';
    else{
        n=5;
        while(p>0){
            cn=n;
            k=0;
            while(cn%5==0){
                p--;
                k++;
                cn/=5;
            }
            if(p==0)
                break;
            n+=5;
        }
        g<<n<<' ';
    }
    **/
    if(p==0){
        g<<1<<' ';
        return 0;
    }
    long ok = -1;
    long st = 0;
    long dr = 1000000000;
    while(st<dr){
        long mij = (st+dr)/2;
        long m=numar_zero(mij);
        if(m==p){
            ok=mij;
            break;
        }
        else if(m<p){
            st=mij+1;
        }
        else
            dr=mij-1;
    }
    if(ok!=-1)
    for(i=3;i>=0;i--){
        if(ok%5==0)
            break;
        ok--;
    }
    g<<ok<<'\n';
    return 0;
}