Cod sursa(job #2748538)

Utilizator Andrei_TudorAndrei Tudor Andrei_Tudor Data 1 mai 2021 12:55:45
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

int f(int x){
    int p = 5, k = 0;
    while(x / p > 0){
        k = k + x / p;
        p *= 5;
    }
    return k;
}

ifstream cin("fact.in");
ofstream cout("fact.out");
int main()
{
    int p, st, dr, med;
    cin >> p;
    if(p == 0){
        cout << 1;
    }
    else {
        st = 1; dr = 5 * p;
        med = (st + dr) / 2;
        while(f(med) != p){
            med = (st + dr) / 2;
            if(dr == st + 2 && f(med) != p){
                med = -1;
                break;
            }
            if(f(med) < p){
                st = med + 1;
            }
            else if(f(med) > p){
                dr = med - 1;
            }
        }
        if(med != -1){
            cout << med - med % 5;
        }
        else if(med == -1){
            cout << "-1";
        }
    }
    return 0;
}