Pagini recente » Cod sursa (job #781588) | Cod sursa (job #569594) | Cod sursa (job #3159585) | Cod sursa (job #421398) | Cod sursa (job #1417278)
#include<fstream>
#include<iostream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int inline sum(int n)
{
return n/4;
}
int fact(int p)
{
if(p==0)
return 1;
else if(p==1)
return 5;
else if(p==2)
return 10;
else
{
int f=(1<<30);
int st=11;
int mij;
int nr=(1<<30);
int pr=0;
while(st<=f)
{
mij=(st+f)/2;
for(int k=5;mij/k!=0;k*=5)
pr+=mij/k;
if(pr==p)
{
nr= min(mij,nr);
f=mij-1;
}
else if(pr<p)
{
st=mij+1;
}
else
f=mij-1;
pr=0;
}
if(nr!=(1<<30))
return nr;
else
return -1;
}
}
int main()
{
int p;
in>>p;
out<<fact(p);
return 0;
}