Pagini recente » Cod sursa (job #847124) | Cod sursa (job #2431646) | Cod sursa (job #1444404) | Cod sursa (job #981090) | Cod sursa (job #2155653)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long v[21];
int i,sum,p;
bool ok(int x)
{
int st=1,dr=20,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 poz(int x)
{
int st=1,dr=20,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;
}
}
int main()
{ v[1]=5;
for(i=2;i<=20;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;
}
g<<i;
}
return 0;
}