Pagini recente » Borderou de evaluare (job #2010811) | Cod sursa (job #3274289) | Cod sursa (job #400518) | Borderou de evaluare (job #1566806) | Cod sursa (job #790962)
Cod sursa(job #790962)
#include <stdio.h>
using namespace std;
long long unsigned int zero(long long unsigned int n)
{
long long unsigned int i = 0,p5 = 5;
while(n >= p5)
{
i+=n/p5;
p5*=5;
}
return i;
}
int main()
{
int p;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
if(p == 0)
printf("1\n");
else
{
long long unsigned min = 0;
long long unsigned max = 500000000;
long long unsigned center = (min+max)/2;
while(!(zero(center) <= p && zero(center+1) >p))
{
if(zero(center) > p)
max = center;
else
min = center;
center = (min+max)/2;
}
center = center - (center%5);
if(zero(center) == p)
printf("%llu",center);
else
printf("-1");
}
return 0;
}