Cod sursa(job #2700542)

Utilizator Victor280605Victor Dragos Victor280605 Data 27 ianuarie 2021 23:44:07
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream in("fact.in");
ofstream out("fact.out");
int nrz(int nr){
    int z = nr / 5;
    int zeros = z;
    while (z >= 5){
        z = z / 5;
        zeros += z;
    }
    return zeros;
}

int main(){
    int p;
    in >> p;
    int nr = p;
    int k = nrz(nr*5);
    int diff = k - p;
    int interval = nr;
    if (p == 0) { out << 1; return 0;}
    else
        while (diff != 0)
        {
            k = nrz(nr*5);

            if (k < p)
            {
                interval /= 2;
                if (interval < 1) interval = 1;
                nr = nr + interval;
            }
            else if (k > p)
            {
                interval /= 2;
                if (interval < 1) interval = 1;
                nr = nr - interval;

            }
            if (diff * (k - p) == -1)
            {
                //error
                out << -1;
                return 0;
            }
            diff = k - p;

        }
    out << nr*5;
}