Pagini recente » Cod sursa (job #2904184) | Cod sursa (job #1639159) | Cod sursa (job #3281625) | Cod sursa (job #1579891) | Cod sursa (job #1183521)
#include <iostream>
#include <fstream>
using namespace std;
int fact(int n){
int x = 5,rez=0;
while(x <= n){
rez += n / x;
x *=5;
}
return rez;
}
int main()
{
ifstream f("fact.in");
ofstream g("fact.out");
int n,p;
f>>p;
int st = 1, dr = (1LL<<30), ok = 0, m;
while(st < dr){
m = (st + dr) / 2;
if(p > fact(m)){
st = m + 1;
}
if(p < fact(m)){
dr = m - 1;
}
if(p == fact(m)){
ok = 1;
break;
}
}
while(fact(m) >= p && m >= 0){
if(fact(m) >= p)
--m;
}
if(ok)
g<<m+1;
else
g<<"-1";
///cout<<fact(1LL<<30);
return 0;
}