Mai intai trebuie sa te autentifici.
Cod sursa(job #1771243)
Utilizator | Data | 5 octombrie 2016 13:41:07 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
#define ll long long
using namespace std;
ifstream in ("fact.in");
ofstream out("fact.out");
ll n, p;
ll zerouri(ll x)
{
ll s = 0, k = 5;
while(k <= x)
{
ll a = x / k;
s+= a;
k*= 5;
}
return s;
}
ll cautbin(ll val)
{
ll start = 1, step = (1 << 30);
for(; step; step>>=1)
{
ll index = start + step;
if(zerouri(index) <= val)
start = index;
}
return start;
}
int main()
{
in >> p;
ll val = cautbin(p - 1) + 5;
if(p == 0)
out << 1;
else
out << val - val %5;
}