Pagini recente » Cod sursa (job #1628901) | Cod sursa (job #1240779) | Cod sursa (job #569163) | Cod sursa (job #2916991) | Cod sursa (job #443034)
Cod sursa(job #443034)
#include<iostream.h>
#include<fstream.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long st,dr,n,p;
long nrz( long c )
{
long p=0;
while( c )
{
p += c/5;
c /= 5;
}
return p;
}
// nrz este numarul de zerouri al lui c
// st , dr , sunt limitele cautarii
// p reprezinta numarul de intrare
int main()
{ long long c,nr;
st=0;
dr=1000000000;
n=1;
f>>p;
if(p>0){
while(n){ c=(st+dr)/2;
nr=nrz(c);
if(nr==p&&st==dr) {n=st;break;}
if(dr<st) {n=-1;break;}
if(p>nr) st=c+1;
else dr=c-1;
}
if (n>=0) g<<n; else g<<-1;
}
else if (p==0)g<<0;else g<<-1;
return 0;
}