Pagini recente » Cod sursa (job #2204822) | Cod sursa (job #1847408) | Cod sursa (job #480777) | Cod sursa (job #514251) | Cod sursa (job #2155675)
#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{
// for(i=5;;i+=5)
// {
// if(ok(i))
// sum+=poz(i);
// else sum+=1;
// if(sum==p) break;
// else if(sum>p) {g<<-1;return 0;}
// else continue;
// }
sum=p*5;
int k=ok(sum);
for(i=2;i<=k;i++)
{
sum-=(i-1)*5;
i++;
}
g<<sum;
}
return 0;
}