Pagini recente » Cod sursa (job #1483123) | Istoria paginii runda/simunat_07_10_2021/clasament | Cod sursa (job #2432292) | Istoria paginii runda/cel_mai_mare_olimpicar1/clasament | Cod sursa (job #736473)
Cod sursa(job #736473)
#include <stdio.h>
#include <math.h>
FILE *fin=fopen("factorial.in","r");
FILE *fout=fopen("factorial.out","w");
int zero(int n);
int cautare(int st, int dr, int p);
int main()
{
int p;
fscanf(fin, "%d", &p);
if (p==0)
fprintf(fout, "1");
else if (zero(cautare(4*p, 5*p, p))==p)
fprintf(fout, "%d", cautare(4*p, 5*p, p));
else
fprintf(fout, "-1");
fclose(fin);
fclose(fout);
return 0;
}
int zero (int n)
{
int i=1,nr=0;
while(pow(5,i)<=n)
{
nr=nr+n/int(pow(5,i));
i++;
}
return nr;
}
int cautare(int st, int dr, int p)
{
int mij=(st+dr)/2;
if (st==dr)
return st;
if (zero(mij)>=p)
return cautare(st,mij,p);
else
return cautare(mij+1,dr,p);
}