Pagini recente » Borderou de evaluare (job #2687116) | Arhiva Educationala | Borderou de evaluare (job #2018368) | Cod sursa (job #2809422) | Cod sursa (job #546758)
Cod sursa(job #546758)
#include<iostream.h>
#include<fstream.h>
long long mij;
ofstream g;
long long numarzerouri(long long c)
{
long long l=0;
while (c!=0)
{
c=c/5;
l=l+c;
}
return l;
}
int dei(unsigned long long s, unsigned long long d, unsigned long long a)
{
// unsigned long long mij;
if (d<s) return -1;
else
{
mij=(s+d)/2;
long long nrz=numarzerouri(mij);
if (nrz==a && s==d) return mij;
else if (nrz<a) return dei(mij+1,d,a);
else return dei(s,mij-1,a);
// else g<<"-1";
}
}
int main()
{
ifstream f;
f.open("fact.in");
unsigned long long p;
f>>p;
g.open("fact.out");
/*long long st=0;
long long dr=1000000000;
long long c;
long long n=1;
long long nrz;
if(p>0)
{
while(n)
{
if(dr<st) {n=-1;break;}
c=(st+dr)/2;
nrz=numarzerouri(c);
if(nrz==p && st==dr ) {n=st;break;}
else if(p>nrz) st=c+1;
else dr=c-1;
}
}*/
dei(0,1000000000,p);
if (p==0) g<<"1";
else g<<mij;
//g<<n;
f.close();
g.close();
return 0;
}