Cod sursa(job #678652)

Utilizator radu2004GOLD radu radu2004 Data 12 februarie 2012 10:08:54
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>

FILE *f,*g;
long m,st,dr,n,p;
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=100000000;

 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 st=m+1;



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