Cod sursa(job #2154616)

Utilizator HuskyezTarnu Cristian Huskyez Data 7 martie 2018 09:37:37
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>

#define infile "fact.in"
#define outfile "fact.out"

using namespace std;

ifstream in(infile);
ofstream out(outfile);

int p;
int n;

int st = 0;
int dr = 1e8;

int nr5(int x)
{
    int r = 0;
    for(int i=5; i<=x; i*=5){
        r += x/i;
    }
    return r;
}

int main()
{
    in >> p;

    while(st < dr){
        int mid = (st+dr)/2;
        int exp = nr5(mid);
        if(exp == p && mid%5 == 0){
            out << mid;
            return 0;
        }
        if(exp < p){
            st = mid+1;
        }else{
            dr = mid-1;
        }
    }

    if(p == 0){
        out << '1';
    }else{
        //for(; st%5 != 0; st--);
        if(st%5){
            out << -1;
        }
        out << st;
    }

    return 0;
}