Cod sursa(job #1691691)
Utilizator | Tiberiu Musat Tiberiu02 | Data | 19 aprilie 2016 10:39:51 |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
# include <stdio.h>
# include <stdlib.h>
int nrZero( int nr ) {
int k;
k = 0;
while ( nr ) {
nr /= 5;
k += nr;
}
return k;
}
int src( int nr ) {
int pos, pas;
pos = 0;
for ( pas = 30; pas >= 0; pas -- )
if ( nrZero( pos + ( 1 << pas ) ) < nr )
pos += ( 1 << pas );
return pos + 1;
}
int main() {
FILE *fin = fopen( "fact.in", "r" ), *fout = fopen( "fact.out", "w" );
int n;
fscanf( fin, "%d", &n );
fprintf( fout, "%d", src( n ) );
fclose( fin );
fclose( fout );
return 0;
}