Pagini recente » Cod sursa (job #2347824) | Cod sursa (job #2205038) | Cod sursa (job #1981488) | Cod sursa (job #704230) | Cod sursa (job #306380)
Cod sursa(job #306380)
#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=1000000000;
ok=0;
while(st<=dr)
{
mij=(st+dr)/2;
if(numarare(mij)==p)
{
ok=1;
rasp=mij;
break;
}
else
{
if(numarare(mij)>p)
dr=mij-1;
else
st=mij+1;
}
}
if(p==0)
fprintf(s,"1");
else if(!ok)
fprintf(s,"-1");
else
fprintf(s,"%lld",rasp-rasp%5);
fclose(s);
return 0;
}