Cod sursa(job #2377302)

Utilizator RobertuRobert Udrea Robertu Data 9 martie 2019 15:32:05
Problema Factorial Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("fact.in");
ofstream of("fact.out");

long long int dr = 500000000;

int main()
{
   long long int p, fr5, st = 1, mid;

    f >> p;
   //cin >> p;

    if( p == 5 )
    {
        of << -1;
        return 0;
    }else if( !p )
        {
            of << -1;
            return 0;
        }

    int x;
    while(st < dr)
    {
        mid = (st + dr) / 2;
        fr5 = 0; x = 5;

        while(x <= mid)
        {
            fr5 += mid / x;
            x = x * 5;
        }
         if( fr5 >= p ) dr = mid;
        else if( fr5 < p ) st = mid + 1;

    }

    fr5 = 0;
    x = 5;
    while(x <= st)
        {
            fr5 += mid / x;
            x = x * 5;
        }

   if( fr5 == p) of << st;
   else of << -1;
   //cout << st;

    return 0;
}