Pagini recente » Cod sursa (job #2487445) | Cod sursa (job #2516056) | Cod sursa (job #2749649) | Cod sursa (job #3154940) | Cod sursa (job #2191106)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long numberOfFives(unsigned long N)
{
unsigned long result = 0, divider = 5;
while(N/divider > 0)
{
result += N/divider;
divider *= 5;
}
return result;
}
int main()
{
unsigned long P,lowerN,higherN,averageN,num5;
fin>>P;
higherN = P*5;
lowerN = P*4;
averageN = (higherN + lowerN) / 2;
num5 = numberOfFives(averageN);
while(num5!=P)
{
if(num5<P)
{
lowerN = averageN;
if(averageN == (higherN + lowerN) / 2)
averageN = (higherN + lowerN) / 2 + 1;
else
averageN = (higherN + lowerN) / 2;
}
else
{
higherN = averageN;
if(averageN == (higherN + lowerN) / 2)
averageN = (higherN + lowerN) / 2 + 1;
else
averageN = (higherN + lowerN) / 2;
}
num5 = numberOfFives(averageN);
}
averageN -= averageN%5;
if(averageN == 0)
fout<<1<<'\n';
else
fout<<averageN<<'\n';
fin.close();
fout.close();
return 0;
}