Cod sursa(job #2065486)

Utilizator AnduRazvanMindrescu Andu AnduRazvan Data 13 noiembrie 2017 20:28:43
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>
int p;
int Nrz(int x)
{ int put=5,s=0;
  int cx=x;
    while(cx/put)
    { s+=cx/put;
      put*=5;
    }
  return s;
}
int Cautbin(int ss,int dd,int px)
{ int st=ss;
  int dr=dd,mij;
  while(st<=dr)
   { mij=st+(dr-st)/2;
     int nr=Nrz(mij);
     if(nr==px) return mij;
     else if(nr<px) st=mij+1;
     else if(nr>px) dr=mij-1;
   }
   return -1;
}
int main()
{ FILE  *f,*g;
   f=fopen("fact.in","r");
   g=fopen("fact.out","w");
   fscanf(f,"%d",&p);
   int st=1;
   int dr=500000000;
   int val=Cautbin(st,dr,p);
   if(p==0) fprintf(g,"1");
   else if(val==-1) fprintf(g,"%d",val);
   else if(val%5==0)
    fprintf(g,"%d",val);
    else {while(val%5!=0) val--;
    fprintf(g,"%d",val);}
    return 0;
}