Cod sursa(job #2253975)

Utilizator pinteastefanPintea Teodor Stefan pinteastefan Data 4 octombrie 2018 17:39:33
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

int numbrOfZeros(int x){
    int pow = 1, nr = 0, put = 1;
    while(x >= put){
        put *= 5;
        nr += x / put;
        ++pow;
    }
    return nr;
}

int main() {
    ifstream f("fact.in");
    ofstream g("fact.out");
    int n;
    f >> n;
    int stanga, dreapta;
    stanga = 1;
    dreapta = n * 5;
    if (n == 0){
        g << 1;
        return 0;
    }
    while (stanga <= dreapta){
        int mijloc = (stanga + dreapta) / 2;
        if (numbrOfZeros(mijloc) == n){
            g << mijloc;
            return 0;
        }
        if (numbrOfZeros((mijloc)) < n){
            stanga ++;
        }
        if (numbrOfZeros(mijloc) > n){
            dreapta --;
        }
    }
    return 0;
}