Pagini recente » Cod sursa (job #2353499) | Cod sursa (job #2729750) | Cod sursa (job #2371402) | Rating Raluca Vlad (raluvlad) | Cod sursa (job #679108)
Cod sursa(job #679108)
#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;
}