Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #1805673) | Cod sursa (job #2660398)
//Mihai Priboi
#include <stdio.h>
#include <stdlib.h>
int cautbin( int x ) {
int r, pas;
pas = 1 << 26;
r = 0;
while( pas ) {
if( nr_zero(r + pas) < x )
r += pas;
pas /= 2;
}
return r + 1;
}
int nr_zero( int n ) {
int nr, p;
p = 5;
nr = 0;
while( p <= n ) {
nr += n / p;
p *= 5;
}
return nr;
}
int main() {
FILE *fin, *fout;
int n, p;
fin = fopen( "fact.in", "r" );
fscanf( fin, "%d", &p );
fclose( fin );
fout = fopen( "fact.out", "w" );
n = cautbin(p);
fprintf( fout, "%d", nr_zero(n) == p ? n : -1 );
fclose( fout );
return 0;
}