Cod sursa(job #2218350)
Utilizator | predescu bebeetare | Data | 4 iulie 2018 12:14:56 |
---|---|---|---|
Problema | Factorial | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p,st,dr,step;
int i;
bool ok=false;
long long nr_zero(long long val)
{
long long p=5,nr=0;
while(p<=val)
{
nr=nr+val/p;
p=p*5;
}
return nr;
}
int main()
{
f>>p;
st=1;
dr=p*5;
while(step<dr)step<<=1;
for(i=1;step;step>>=1)
{
if(i+step<=dr && nr_zero(i+step)<=p)
{
i+=step;
}
}
while(nr_zero(i)==p && i>=1)
{
i--;
ok=true;
}
i++;
if(ok==true)g<<i<<'\n';
else g<<-1;
return 0;
}