Cod sursa(job #2667827)

Utilizator tuddi69666Blidea Tudorel Alexandru tuddi69666 Data 3 noiembrie 2020 21:46:24
Problema Factorial Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;

bool p5 (int n) {
    while (n % 5 == 0) {
        n /= 5;
    }
    if (n != 1) {
        return false;
    } else {
        return true;
    }
}
int zerouriFactorial (int n) {
    int putere5 = 5;
    int cinciuri = n / putere5, result = 0;
    while (cinciuri != 0) {
        result += cinciuri;
        putere5 *= 5;
        cinciuri = n / putere5;
    }
    return result;
}

int main()
{
    ifstream in ("fact.in");
    ofstream out ("fact.out");
    int n;
    in >> n;
    if (n == 0) {
        out << 1;
    } else {
        if (p5(n)) {
            out << "-1";
        } else {
            int k = n;
            while (zerouriFactorial(5 * k) != n) --k;
            out << 5 * k;
        }
    }
    in.close();
    out.close();
    return 0;
}