Pagini recente » Cod sursa (job #100241) | Cod sursa (job #1073999) | Cod sursa (job #1402576) | Cod sursa (job #1653373) | Cod sursa (job #1149398)
#include <iostream>
#include <fstream>
using namespace std;
#define NMax 1000000000
ifstream in("fact.in");
ofstream out("fact.out");
int p;
int power_of_5(int x)
{
int a=5,count=0;
while(x/a)
{
count=count+x/a;
a*=5;
}
return count;
}
void find_it(int p)
{
int provisional_power;
if (p==0) out<<1;
else
{
int infLim=1,supLim=NMax,middle;
bool stay_still=false;
while(infLim<=supLim && !stay_still)
{
middle=(infLim+supLim)/2;
provisional_power=power_of_5(middle);
if(provisional_power<p) infLim=middle+1;
else if(provisional_power>p) supLim=middle-1;
else stay_still=true;;
}
if (stay_still)
{
while(middle%5) middle--;
out<<middle;
}
else out<<-1;
}
}
int main ()
{
in>>p;
find_it(p);
return 0;
}