Pagini recente » Cod sursa (job #2345113) | Cod sursa (job #1671697) | Cod sursa (job #2566787) | Cod sursa (job #142102) | Cod sursa (job #2614221)
#include <fstream>
std::ifstream f("fact.in");
std::ofstream g("fact.out");
int findTrailingZeros(int n)
{
int count = 0;
for (int i = 5; n / i >= 1; i *= 5)
count += n / i;
return count;
}
int main()
{
int p;
f >> p;
if (p == 0)
{
g << "1";
return 0;
}
int n = 5 * p;
int nb_of5 = findTrailingZeros(n);
while (1)
{
int temp = n, count_temp = 0;
do
{
temp /= 5;
count_temp++;
} while (temp % 5 == 0);
if (nb_of5 - count_temp < p)
{
if (nb_of5 == p) {
g << n;
return 0;
}
if (nb_of5 > p) {
g << "-1";
return 0;
}
}
nb_of5 -= count_temp;
n -= 5;
}
}