Cod sursa(job #2274650)

Utilizator rebecca0312Andrei Rebecca rebecca0312 Data 2 noiembrie 2018 11:24:51
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<cstdio>
using namespace std;

const long long NMAX=10e8*5;

long long putere(long long nr){
    long long p5=5,s=0;
    while(p5<=nr){
        s+=nr/p5;
        p5*=5;
    }
    return s;
}

long long bs(long long st, long long dr, long long val){
    while(st<=dr){
        long long mij=(st+dr)/2;
        if(putere(mij)>val)
            dr=mij-1;
        else
            if(putere(mij)<val)
                st=mij+1;
            else
                return mij/5*5;
    }
    return -1;
}

int main(){
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p;
    scanf("%d", &p);
    if(p==0)
        printf("1");
    else
        printf("%lld", bs(1, NMAX, p));
    return 0;
}