Cod sursa(job #2274643)
Utilizator | Data | 2 noiembrie 2018 11:20:21 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 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){
long long sol=-1;
while(st<=dr){
long long mij=(st+dr)/2;
if(putere(mij)>=val)
dr=mij-1,sol=mij;
else
st=mij+1;
}
return sol;
}
int main(){
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d", &p);
printf("%lld", bs(1, NMAX, p));
return 0;
}