Pagini recente » Cod sursa (job #995000) | Cod sursa (job #2325933) | Cod sursa (job #1722949) | Cod sursa (job #456372) | Cod sursa (job #306375)
Cod sursa(job #306375)
#include <stdio.h>
FILE *f,*s;
long long int p,n,st,dr,mij,i,j,rasp;
long long int numarare(long long int x)
{
long long int nrz=0;
for(i=5;i<x;i*=5)
nrz+=x/i;
return nrz;
}
int main()
{
f=fopen("fact.in","r");
s=fopen("fact.out","w");
fscanf(f,"%lld",&p);
st=0;
dr=10000000000;
rasp=-1;
while(st<=dr)
{
mij=(st+dr)/2;
if(numarare(mij)==p)
{
rasp=mij;
break;
}
else
{
if(numarare(mij)>p)
dr=mij-1;
else
st=mij+1;
}
}
if(p==0)
fprintf(s,"1");
else if(rasp==-1)
fprintf(s,"-1");
else
fprintf(s,"%lld",rasp-rasp%5);
fclose(s);
return 0;
}