Cod sursa(job #2294327)

Utilizator NeganAlex Mihalcea Negan Data 2 decembrie 2018 11:30:38
Problema Factorial Scor 25
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int factorial(int n)
{
    int cnt = 0;
    while(n >= 5)
    {
        cnt += n / 5;
        n /= 5;
    }
    return cnt;
}


int main()
{
    int P, n, stg, dr, mid,gasit=0;
    fin >> P;
    if(P == 0)
    {
        fout << 1;
        return 0;
    }
    stg = 1;
    dr = 5000000;
    while(stg < dr)
    {
        mid = stg+ (dr-stg)/2;
        if(factorial(mid) > P)
            dr = mid - 1;
        else if(factorial(mid) < P)
            stg = mid + 1;
        else if(factorial(mid) == P)
            {gasit=1;break;}
    }
   if(gasit==1)
    {
        mid -= mid % 5;
        fout << mid;
    }
else fout<<-1;
    return 0;
}