Pagini recente » Cod sursa (job #1297176) | Cod sursa (job #1685563) | Cod sursa (job #2780028) | Cod sursa (job #1924062) | Cod sursa (job #2021294)
#include<fstream>
using namespace std;
int nr_zerouri(int k)
{
int t=0,p=5;
while(k>=p)
{
t=t+k/p;
p=p*5;
}
return t;
}
int main()
{
ifstream read("fact.in");
ofstream write("fact.out");
int P;
read>>P;
int e5=0;
if(P==0)
{
write<<1;
}
else
{
int cpst=5,cpdr=500000000,cpmj;
while(cpst!=cpdr)
{
cpmj=(cpst+cpdr)/2;
if(nr_zerouri(cpmj)>P)
{
cpdr=cpmj;
}
else if(nr_zerouri(cpmj)<P)
{
cpst=cpmj;
}
else if(nr_zerouri(cpmj)==P)
{
cpst=cpmj;
cpdr=cpmj;
break;
}
}
if (nr_zerouri(cpst)==P) {write<<cpst-cpst%5;}
else {write<<-1;}
}
return 0;
}
/* int n=5,ncpy;
while(1)
{
ncpy=n;
while(ncpy%5==0)
{
e5=e5+1;
ncpy=ncpy/5;
}
n=n+5;
if(e5==P)
{
write<<n-5;
break;
}
if(e5>P)
{
write<<-1;
break;
}
}
} */