Pagini recente » Cod sursa (job #682179) | Cod sursa (job #2090027) | Cod sursa (job #2460381) | Cod sursa (job #708234) | Cod sursa (job #598355)
Cod sursa(job #598355)
#include <stdio.h>
#include <limits.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 = 0, n2 = 0, p2 = 0, p1 = 0, k = 1, sup, rsup = INT_MAX;
scanf("%ld", &p);
while(k)
{
k = 0;
n2 = 1;
p2 = 0;
while((p1 + p2*5+1) <= p)
{
k = 1;
p2 = p2 * 5 + 1;
n2 = n2 * 5;
}
if((p1 + p2*5+1) > p && rsup > n2)
{
rsup = n2;
sup = n + n2 * 5;
}
p1 = p1 + p2;
if(n != 1)
n = n + n2;
if(p == p1)
{
if(n >= sup)
{
printf("-1");
return 0;
}
printf("%ld", n);
return 0;
}
}
return 0;
}