Cod sursa(job #1022853)

Utilizator alexsuciuAlex Suciu alexsuciu Data 6 noiembrie 2013 00:17:55
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<iostream>
#include<fstream>
using namespace std;

long long fact (long long x)
{
    long long nr=0,p=5;
    while(x>=p)
    {
        nr=nr+x/p;
        p*=5;
    }
    return nr;
}

int main()
{
    long long p,li=1,ls,m,cal;
    int ok=1;

    ifstream f("fact.in");
    ofstream g("fact.out");
    f>>p;
    ls=5*p;
    if(p==0) g<<1;
    else{
    while(li<=ls && ok)
    {
        m=(li+ls)/2;
        cal=fact(m);
        if(cal==p) ok=0;
        else if(cal>=p) ls=m=1;
        else li=m+1;
    }
    if (!ok && m>5) g<<m-m%5;
    else if (!ok) g<<m;
    else g<<-1;}

}