Cod sursa(job #3329173)
| Utilizator | Data | 11 decembrie 2025 23:41:05 | |
|---|---|---|---|
| Problema | Factorial | Scor | 5 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
long long P, N;
long long zero(long long n)
{
int p = 5;
long long sum = 0;
while(n > p)
{
sum += n / p;
p *= p;
}
return sum;
}
int main()
{
ifstream cin("fact.in");
ofstream cout("fact.out");
cin >> P;
long long st, dr, mij, f;
st = 0, dr = LONG_MAX;
if(P == 0)
cout << 1;
else
{
while(st <= dr)
{
mij = (st + dr) / 2;
if(P <= zero(mij))
{
f = mij;
dr = mij - 1;
}
else
st = mij + 1;
}
cout << f;
}
return 0;
}
