Cod sursa(job #1960833)

Utilizator igroitaGroita Igor igroita Data 10 aprilie 2017 18:29:18
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

long p;

long long zero(long long n){
    long long z=0, c;
    c = 5;
    while(c<=n){
        z+=n/c;
        c *=5;
    }
    return z;
}


long long wanted(long long b, long long e){
    while(b<e){
    long long mid;
    mid = (b+e)/2;
    if(zero(mid)>=p) e = mid;
    else b = mid + 1;
    }

    return (b+e)/2;
}


int main(){
    fin>>p;
    if(p==0) fout<<1;
    else {long long fact = wanted(1,500000000);
    if(p==zero(fact)) fout<<fact;
    else fout<<-1;
}
    return 0;
}