Cod sursa(job #598331)
#include <stdio.h>
// nr natural minim pt care N! are P zerouri;
int main()
{
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
long int p, n = 1, n2, p2 = 0;
scanf("%ld", &p);
if(p == 0)
{
printf("1");
return 0;
}
while((p2*5+1) < p)
{
p2 = p2 * 5 + 1;
n = n * 5;
}
while(p > p2)
{
n = n + 5;
n2 = n;
while(n2 % 10 == 0 && n2 != 0)
{
n2 = n2 / 10;
p2++;
}
while(n2 % 5 == 0 && n2 != 0)
{
n2 = n2 / 5;
p2++;
}
if(p2 == p)
{
printf("%ld", n);
return 0;
}
}
printf("-1");
return 0;
}