Cod sursa(job #2294325)

Utilizator NeganAlex Mihalcea Negan Data 2 decembrie 2018 11:27:31
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 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;
    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)
            break;
    }
    mid -= mid % 5;
    fout << mid;


    return 0;
}