Pagini recente » Cod sursa (job #553347) | Cod sursa (job #1960136) | Cod sursa (job #1637595) | Cod sursa (job #1618829) | Cod sursa (job #1242950)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p,valo;
int nr_zero(int x) // aceasta functie verifica cati 5 are n factorial
{
int i,s=0; // ok , deci aici stim ca numarul de 0 este dat de produsul dintre 2 si 5 , 2 avem destui , asa ca o sa ne intereseze numa cati de 5 avem
for(i=5;i<=x;i*=5) //aici mergem din puterile lui 5 , si vedem de cate ori il avem pe 5 la puterea i (in n factorial)
{
s=s+x/i;
}
return s;
}
int bsearch(int st,int dr,int val)
{
int mij,k;
while(st<=dr)
{
mij=(st+dr)/2;
k=nr_zero(mij);
if(k>=val)
dr=mij-1;
else
st=mij+1;
}
return st;
}
int main()
{
f>>p;
valo=bsearch(p);
if (nr_zero(valo)==p)
g<<valo-4;
else
g<<"-1";
return 0;
}