Pagini recente » Cod sursa (job #716305) | Cod sursa (job #1426330) | Cod sursa (job #2931804) | Cod sursa (job #669661) | Cod sursa (job #2494796)
#include <stdlib.h>
#include <stdio.h>
int fact0 ( int x)
{
if(x ==0 )
return -1;
else
{
int p = 5;
int cont = 0;
while ( x/p != 0)
{
cont+= (x/p);
p*=5;
}
return cont;
}
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%i",&p);
int first = 1;
int last = (1<<30)-1;
int check = 1;
int mid;
while( first <= last && check)
{
mid = (first+last)/2;
int zero = fact0(mid);
int zero_test = fact0(mid-1);
if(zero == p && zero_test < p)
check = 0 ;
else if ( zero < p )
first = mid + 1;
else if ( zero > p || zero_test >= p )
last = mid - 1;
}
if ( !check )
printf("%i", mid );
else printf("-1");
}