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