Pagini recente » Cod sursa (job #2315010) | Cod sursa (job #1767205) | Cod sursa (job #371192) | Cod sursa (job #2356536) | Cod sursa (job #2557649)
#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int zeros(int n)
{
int ans=0;
while(n)
{
ans+=(n/5);
n/=5;
}
return ans;
}
int getBiggestBit(int n) {
int sol = 1;
while (n) {
sol += 1;
n >>= 1;
}
return sol;
}
int main()
{
int p,n;
cin>>p;
if (p == 0) {
cout << 1 << '\n';
return 0;
}
int sol = 0;
for (int bit = getBiggestBit(p * 5); bit >= 0; -- bit) {
if (1LL * sol + (1LL << bit) <= p * 5 and zeros(sol + (1 << bit)) <= p) {
sol += (1 << bit);
}
}
if (zeros(sol) == p) {
cout << (sol - sol % 5) << '\n';
}
else {
cout << -1 << '\n';
}
return 0;
}