Pagini recente » Cod sursa (job #2303722) | Cod sursa (job #79239) | Cod sursa (job #2248848) | Cod sursa (job #2117802) | Cod sursa (job #1953643)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
//returneaza numarul de zerouri pana la n!
int numar_zerouri(int n)
{
int cnt=0;
for(int i=5; n/i>=1; i*=5)
cnt+=n/i;
return cnt;
}
//returneaza un numar cu p zerouri la sfarsit sau 0 daca nu gaseste
int cautbin(int p)
{
int l=1,r=100000001,sol,mid;
while(l<=r)
{
mid=(l+r)/2;
if(numar_zerouri(mid)==p)
{
sol=mid;
return sol;
}
else if(numar_zerouri(mid)<p)
l=mid+1;
else
r=mid-1;
}
return 0;
}
int main()
{
int p;
f>>p;
if(p==0)
g<<1;
else if(cautbin(p)==0)
g<<"-1";
else if(cautbin(p)>0)
g<<cautbin(p)-cautbin(p)%5;
f.close();
g.close();
return 0;
}