Cod sursa(job #679108)

Utilizator radu2004GOLD radu radu2004 Data 12 februarie 2012 19:30:59
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>

FILE *f,*g;
long p;
long   m,dr,st,n;
int ok;

long putere (long x,long y)
{
    long t,s;
    t=y;s=0;
    while (x/t>0) {s=s+x/t;
                   t*=y;}
return s;
}



int main()
{f=fopen ("fact.in","r");
g=fopen ("fact.out","w");
fscanf (f,"%ld",&p);
ok=0;
st=1;
dr=p*5+1;

 if (p==0) fprintf (g,"1");
               else

                               while (st<=dr && ok==0)
{
    m=(st+dr) /2 ;
    if (putere(m,5)==p) {n=m;
                         ok=1;}
                         else  if (putere(m,5)>p) dr=m-1;
                                 else if(putere(m,5)<p) st=m+1;
else {ok=1;n=m;}



}

while (putere(n,5)==p) n--;
if (n==0 && p!=0) fprintf (g,"-1");
   else if (n!=0)  fprintf (g,"%ld",n+1);
    return 0;
}