Cod sursa(job #1008966)

Utilizator alexsuciuAlex Suciu alexsuciu Data 12 octombrie 2013 12:31:23
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 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) li=m+1;
        else ls=m-1;
    }
    if (!ok) g<<m-m%5;
    else g<<-1;}

}