Pagini recente » Statistici Nursik (Nursik) | Cod sursa (job #1054789) | Rating Mihai Ariton (Mihai_Ariton2) | Renovare | Cod sursa (job #1664)
Cod sursa(job #1664)
#include<stdio.h>
#include<math.h>
unsigned long p;
FILE *f=fopen("fact.in","r"),*g=fopen("fact.out","w");
unsigned long zero(unsigned long n)
{
unsigned long k,kmax,nr=0;
kmax=log10(n)/log10(5);
for(k=1;k<=kmax;k++)
nr+=n/pow(5,k);
return nr;
}
unsigned long cauta(unsigned long a,unsigned long b)
{
unsigned long c,rez;
if(b-a>1)
c=(a+b)/2;
else
{
rez=zero(a);
if(rez==p)
{
c=a/5;
return c*5;
}
else
{
rez=zero(b);
if(rez==p)
{
c=b/5;
return c*5;
}
else
return -1;
}
}
rez=zero(c);
if(rez>p)
return cauta(a,c);
else
{
if(rez<p)
return cauta(c,b);
else
{
c/=5;
return c*5;
}
}
}
int main()
{
fscanf(f,"%ld",&p);
fclose(f);
if(p==0)
fprintf(g,"1");
else
fprintf(g,"%ld",cauta(0,4294967295));
fclose(g);
return 0;
}