Cod sursa(job #2664607)

Utilizator Ana_22Ana Petcu Ana_22 Data 28 octombrie 2020 23:01:35
Problema Factorial Scor 60
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXP 100000000

int val( int n ) {
  int cnt, p5;
  p5 = 5;
  cnt = 0;
  while( p5 <= n ) {
    cnt += ( n / p5 );
    p5 *= 5;
  }
  return cnt;
}

int main() {
    FILE *fin, *fout;
    int p, st, dr, mijl;
    fin = fopen( "fact.in", "r" );
    fscanf( fin, "%d", &p );
    fclose( fin );
    st = 0;
    dr = MAXP + 1;
    while( dr - st > 1 ) {
      mijl = ( st + dr ) / 2;
      if( val( mijl ) >= p )
        dr = mijl;
      else
        st = mijl;
    }
    fout = fopen( "fact.out", "w" );
    if( p == val( dr ) )
      fprintf( fout, "%d", dr );
    else
      fprintf( fout, "-1" );
    fclose( fout );
    return 0;
}