Pagini recente » Cod sursa (job #2984598) | Cod sursa (job #2382942) | Cod sursa (job #412066) | Cod sursa (job #1000743) | Cod sursa (job #1608170)
#include <fstream>
using namespace std;
ifstream fi ("fact.in");
ofstream fo ("fact.out");
long long p,sol,n,stanga,dreapta,target,s,i;
int main()
{
fi>>p;
n=-1;
if (p==0) n=1;
else if (p==1) {p=0;n=0;}
else
{
stanga=1;
dreapta=1;
for (i=1;i<=60;i++) dreapta*=2;
while (1>0)
{
target=stanga+dreapta;
target/=2;
for (i=1;i<=30;i++)
{
s+=target/5;
target/=5;
}
if (s==p) {n=(stanga+dreapta)/2;}
if (s>=p) dreapta=(stanga+dreapta)/2;
if (s<p) stanga=(stanga+dreapta)/2;
if (stanga==dreapta) break;
if (dreapta==stanga+1) stanga=dreapta;
if (stanga==dreapta-1) dreapta=stanga;
s=0;
}
}
fo<<n;
return 0;
}