Pagini recente » Cod sursa (job #2553755) | Cod sursa (job #1108242) | Cod sursa (job #1495497) | Cod sursa (job #569222) | Cod sursa (job #805121)
Cod sursa(job #805121)
#include <iostream>
#include <fstream>
using namespace std;
unsigned long int P,mij; unsigned long long int st=1,dr=10000000000LL; bool ind=false;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long int nrzerouri(unsigned long int a)
{
unsigned int k=0; unsigned long int i=5;
if(i>a) return 0;
else
{
while(i<=a)
{
k+=a/i;
i*=5;
}
return k;
}
}
int main()
{
fin>>P;
do
{
mij=(st+dr)/2;
if(P==nrzerouri(mij))
{
ind=true;
while(P!=nrzerouri(st))
st++;
fout<<st;
}
else
{
if(P<nrzerouri(mij)) dr=mij-1;
else st=mij+1;
}
}
while((st!=dr)&&(st+1!=dr)&&(ind==false));
if((P==nrzerouri(mij))&&(ind==false)) fout<<mij;
else if(ind==false) fout<<-1;
cout<<st<<' '<<dr;
}