Cod sursa(job #2494796)

Utilizator MentaPopa Marius-Catalin Menta Data 18 noiembrie 2019 14:34:38
Problema Factorial Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdlib.h>
#include <stdio.h>


int fact0 ( int x)
{

  if(x ==0 )
  return -1;
  else
  {
  int p = 5;
  int cont = 0;

  while ( x/p != 0)
  {
    cont+= (x/p);
    p*=5;

  }
  return cont;
}

}


int main()
{
 freopen("fact.in","r",stdin);
 freopen("fact.out","w",stdout);

 int p;
 scanf("%i",&p);

 int first = 1;
 int last = (1<<30)-1;
 int check = 1;
 int mid;
 while( first <=  last && check)
 {
    mid = (first+last)/2;
   int zero = fact0(mid);
   int zero_test = fact0(mid-1);

   if(zero == p && zero_test < p)
   check = 0 ;
   else if ( zero < p )
   first = mid + 1;
   else if ( zero > p || zero_test >= p )
   last = mid - 1;
 }

 if ( !check )
 printf("%i", mid );
 else printf("-1");


}