Cod sursa(job #3163215)
Utilizator | Baciu Darius unkrdy | Data | 30 octombrie 2023 22:51:11 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.68 kb |
#include <stdio.h>
using namespace std;
long long int Binary_Search(long long int n)
{
long long int l = 1, r = 1e16, m;
while(l < r)
{
m = (l + r) / 2;
if(Count(m) < n) {
l = m + 1;
}
else {
r = m;
}
}
return l;
}
long long int Count(long long int n)
{
long long int p = 0;
while(n)
{
p += n / 5;
n /= 5;
}
return p;
}
int main()
{
freopen("fact.in",r,stdin);
freopen("fact.out",w,stdout);
long long int n, p;
scanf("%d",&p);
n = Binary_Search(p);
printf("lld\n",n);
return 0;
}