Pagini recente » Cod sursa (job #1355504) | Cod sursa (job #3166929) | Cod sursa (job #2549832) | Cod sursa (job #41619) | Cod sursa (job #785860)
Cod sursa(job #785860)
#include<cstdio>
#include<stdlib.h>
#include<cmath>
using namespace std;
#define ll long long
#define Inf 100000000
ll c,p1,cmin=Inf;
bool ok=false;
inline ll min(ll a ,ll b )
{
return a<b? a : b ;
}
ll desc( ll c)
{
ll sum=0,sum2=0;
for(ll t1=5;c/t1>=1;t1*=5)
{
sum+=abs((long double)c/t1);
}
// for(ll t1=2;c/t1>=1;t1*=2)
//{
//sum2+=abs(c/t1);
//}
return sum;
}
ll cautare(ll a, ll b,ll p)
{
if(a>=b&& !ok)return -1;
else
if(a>=b&&ok)return cmin;
else
{
c=(a+b)/2;
//printf("%lld ",c);
p1=desc(c);
//printf("p1=%lld ,c=%d \n",p1,c);
if(p1==p)
{
ok=true;
if(cmin>c)cmin=c;
cautare(a,c,p);
}
else if(p1<p)cautare(c+1,b,p);
else if(p1>p) cautare(a,c-1,p);
}
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
ll p,rez;
scanf("%lld",&p);
rez=cautare(0,Inf,p);
printf("%lld",rez);
return 0;
}