Cod sursa(job #1038032)

Utilizator vladpaulandreivlad paul vladpaulandrei Data 20 noiembrie 2013 22:31:33
Problema Factorial Scor 100
Compilator cpp Status done
Runda cei_mici_2 Marime 0.66 kb
#include<fstream>
#define numaru 400000016
using namespace std;
long long verif(long long n)
{
    long long s=0,o=1;
    while(o<=n)
        s+=(n/(o*=5));
    return s;
}
int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    long long k,q,w,e,p,r;
    while(f>>p){
    if(p==0) { g<<"1\n"; }
    else
    {
        q=5; w=numaru;
        while(q<=w)
        {
            k=(q+w)>>1;
            e=verif(k);
            if(e==p) break;
            else if(e<p) q=k+1;
            else w=k-1;
        }
        if(verif(k)!=p)g<<"-1\n";
        else g<<k/5*5<<"\n";
    }}
    f.close();
    g.close();
    return 0;
}