Pagini recente » Cod sursa (job #2354932) | Cod sursa (job #726569) | Cod sursa (job #1486352) | Cod sursa (job #2571785) | Cod sursa (job #3151838)
#include <stdio.h>
#define CINCI 5
int main()
{
FILE *fin , *fout;
int zero , put5 , cnt , st , dr , mij , zerouri;
fin = fopen ( "fact.in" , "r" );
fscanf ( fin , "%d" , &zero );
fclose ( fin );
fout = fopen ( "fact.out" , "w" );
if ( zero == 0 )
fprintf ( fout , "%d\n" , zero * CINCI + 1 );
else if ( zero < CINCI )
fprintf ( fout , "%d\n" , zero * CINCI );
else {
dr = zero * CINCI - 1; /// zero * 5 este nr maxim
st = zero - 1; /// cel mai mic nr;
zerouri = 0;
while ( dr - st > 1 ) {
mij = ( dr + st ) / 2;
put5 = CINCI;
cnt = 0;
while ( put5 <= mij ) { /// formula lui Legendre
cnt += mij / put5;
put5 *= CINCI;
}
if ( cnt < zero )
st = mij;
else {
dr = mij;
zerouri = cnt;
}
}
if ( zerouri != zero )
dr = -1;
fprintf ( fout , "%d\n" , dr );
}
fclose ( fout );
return 0;
}