Pagini recente » Borderou de evaluare (job #3108794) | Borderou de evaluare (job #1211130) | Cod sursa (job #2748538)
#include <fstream>
using namespace std;
int f(int x){
int p = 5, k = 0;
while(x / p > 0){
k = k + x / p;
p *= 5;
}
return k;
}
ifstream cin("fact.in");
ofstream cout("fact.out");
int main()
{
int p, st, dr, med;
cin >> p;
if(p == 0){
cout << 1;
}
else {
st = 1; dr = 5 * p;
med = (st + dr) / 2;
while(f(med) != p){
med = (st + dr) / 2;
if(dr == st + 2 && f(med) != p){
med = -1;
break;
}
if(f(med) < p){
st = med + 1;
}
else if(f(med) > p){
dr = med - 1;
}
}
if(med != -1){
cout << med - med % 5;
}
else if(med == -1){
cout << "-1";
}
}
return 0;
}