Pagini recente » Borderou de evaluare (job #2360959) | Borderou de evaluare (job #1459350) | Borderou de evaluare (job #2540898) | Borderou de evaluare (job #1115839) | Cod sursa (job #2508471)
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
long long q;
long long test(long long val){
long long cnt = 0, pw5 = 5;
while(pw5 < val){
cnt += (val / pw5);
pw5 *= 5;
}
return cnt;
}
int main()
{
cin >> q;
long long best = -1;
long long st = q + 1;
long long dr = 20000000000;
while(st <= dr){
long long mij = (st + dr) / 2;
long long nr = test(mij);
if(nr == q){
best = mij;
dr = mij - 1;
}
else if(nr < q)
st = mij + 1;
else dr = mij - 1;
}
if(best == -1)
cout << "No solution\n";
else cout << best << '\n';
return 0;
}