Cod sursa(job #1706002)

Utilizator vlasiuflaviusVlasiu Flavius vlasiuflavius Data 21 mai 2016 12:03:37
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
using namespace std;
ofstream fout("factorial.out");
ifstream fin("factorial.in");
int p;
long long nr0;
int main()
{
    fin>>p;
    if( p == 0)
    {
        fout<<1;
        return 0;
    }
    long long st = 1;
    long long dr = 9223372036854775800;
    while( st <= dr )
    {
        long long aux = ( st + dr ) / 2;
        long long rez = 0;
        while( aux >= 5)
        {
            rez += ( aux / 5);
            aux /= 5;
        }
        if( rez >= p )
            dr = ( st + dr ) / 2 - 1;
        else
            st = ( st + dr ) / 2 + 1;
    }
    long long aux = st;
    long long rez = 0;
    while( aux >= 5)
    {
        rez += ( aux / 5);
        aux /= 5;
    }
    if( rez == p) fout<<st;
    else fout<<-1;
}