Cod sursa(job #1292150)

Utilizator wGEORGEWGeorge Cioti wGEORGEW Data 13 decembrie 2014 18:31:30
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>
#include <math.h>
#include <algorithm>

using namespace std;

int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    long p ,mul=1 ,m5 ,s ,d ,m ,aux=0;
    f>>p;
    s=1;
    d=400000015;
    if(p==0)
    g<<"1";
    else
    {
    while(s<d&&aux!=mul)
    {
        aux=mul;
        m=(s+d)/2;
        mul=0;
        m5=5;
        while(m>=m5)
        {
            mul+=m/m5;
            m5*=5;
        }
        if(mul<p)
        s=m+1;
        else
        if(mul>p)
        d=m;
        else
        break;
    }
    if(aux==mul)
    g<<"-1";
    else
    {
    while(m%5!=0)
        m--;
    g<<m;
    }
    }
    return 0;
}