Pagini recente » Cod sursa (job #1879142) | Cod sursa (job #183540) | Cod sursa (job #3348532) | Cod sursa (job #3351464) | Cod sursa (job #2155681)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long v[24],p,i,sum;
int ok(long long x)
{
int st=1,dr=23,mid;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid]==x) return mid;
else if(x>v[mid]) st=mid+1;
else dr=mid-1;
}
return dr;
}
int poz(long long x)
{
int st=1,dr=23,mid;
while(st<=dr)
{
mid=(st+dr)/2;
if(v[mid]==x) return 1;
else if(x>v[mid]) st=mid+1;
else dr=mid-1;
}
return 0;
}
int main()
{ v[1]=5;
for(i=2;i<=23;i++)
v[i]=v[i-1]*5;
f>>p;
if(!p) g<<1;
else{
sum=p*5;
int k=ok(sum);
if(!poz(sum))
{for(i=2;i<=k;i++)
{
sum-=(i-1)*5;
i++;
}
g<<sum;
}
else
{
// for(i=2;i<=k;i++)
// {
// sum-=(i-1)*5;
// i++;
// }
// if(!ok(sum/5))g<<sum;
// }
g<<-1;
}
}
return 0;
}