Cod sursa(job #1926696)
| Utilizator | Data | 14 martie 2017 16:54:48 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
ull nrZero(ull x)
{
ull s=0;
for(ull i=5; x/i>=1; i*=5) s+=x/i;
return s;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
ull m=0, n=0, st=0, dr=1ULL<<63;
f>>n;
if(n==0) {g<<1; return 0;}
while(st<=dr){
m=(st+dr)/2;
if(nrZero(m)<n) st=m+1;
else dr=m-1;
}
g<<(!(m%5) ? m : m+1);
return 0;
}
