Pagini recente » Diferente pentru problema/aranjare3 intre reviziile 13 si 5 | Diferente pentru problema/aliniere intre reviziile 18 si 17 | Diferente pentru utilizator/eric_radavoi intre reviziile 5 si 4 | Diferente pentru problema/canibali intre reviziile 6 si 5 | Cod sursa (job #3317117)
#include <stdio.h>
#define MAXP5 1490116119384765625LL
int main () {
FILE *fin , *fout;
long long p , stn , drn , mijn , p5n;
unsigned long long zero;
fin = fopen ( "fact.in" , "r" );
fscanf ( fin , "%lld" , &p );
fclose ( fin );
stn = 0;
drn = 5000000000000000000;
while ( drn - stn > 1 ) {
mijn = ( stn + drn ) / 2;
p5n = MAXP5;
zero = 0;
while ( p5n > 1 ) {
zero = zero + mijn / p5n;
p5n = p5n / 5;
}
if ( zero < p )
stn = mijn;
else
drn = mijn;
}
fout = fopen ( "fact.out" , "w" );
fprintf ( fout , "%lld\n" , drn );
fclose ( fout );
return 0;
}