Pagini recente » Cod sursa (job #647393) | Cod sursa (job #2847497) | Cod sursa (job #1725788) | Cod sursa (job #1224910) | Cod sursa (job #1011236)
#include<iostream>
#include<fstream>
//#include<conio.h>
using namespace std;
int nrOfZeros(int y)
{
int x=y;
int nrZ=x;
while(x>=5)
{
x/=5;
nrZ+=x;
}
return nrZ;
}
//long maxim = 80000003;
long maxim = 800003;
int findTheOne(int current,int p)
{
if(nrOfZeros(current) == p)
return current*5;
if(nrOfZeros(current) < p)
current = (current + maxim) / 2;
else
current /= 2;
return findTheOne(current,p);
}
int findTheOne2(long current,long p)
{
int x=nrOfZeros(current);
if(nrOfZeros(current) > p)
return -1;
if(nrOfZeros(current) == p)
return current*5;
return findTheOne2(current+1,p);
}
int main()
{
long p,n=1;
ifstream f("fact.in");
f>>p;
f.close();
//n = (p==0)?1:findTheOne(maxim/2,p);
n = (p==0)?1:findTheOne2(1,p);
//cout<<n;
//getch();
ofstream g("fact.out");
g<<n<<"\n";
g.close();
return 0;
}