Cod sursa(job #2914504)

Utilizator alin.gabrielAlin Gabriel Arhip alin.gabriel Data 20 iulie 2022 08:54:31
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <map>
using namespace std;
 
long findN(int p) {
    map<long , int> m;
    long pow = 5;
    for (int i = 2 ; i <= 27 ; i++) {
        pow *= 5;
        m[pow] = i;
    }

    long i = 0;

    if (p == 0)
        return 1;

    while (p > 0) {
        i = i + 5;
        if (m.find(i) != m.end())
            p = p - m[i];
        else if (i % 25 == 0)
            p = p - 2;
        else p--;
    }

    if (p < 0)
        return -1;

    return i;
}

int main() {
    ifstream fin("fact.in");
    ofstream fout("fact.out");
    int p;
    fin>>p;
    fout<<findN(p);
    return 0;
}