Pagini recente » Cod sursa (job #2130131) | Cod sursa (job #2006246) | tema | Cod sursa (job #1644725) | Cod sursa (job #732056)
Cod sursa(job #732056)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
unsigned int putere(unsigned int n, unsigned int p)
{
if (n==0) return 1;
else return putere(n-1,p)*p;
}
unsigned int Zero(unsigned int n)
{
int S=0 ,i;
for (i=1; i<=n; i++)
S=S+n/putere(i,5);
return S;
}
unsigned int cautare (unsigned int st,unsigned int dr,unsigned int p)
{
int mij=(st+dr)/2;
if (Zero(mij)==Zero(p)) return mij;
if (dr==st) return st;
if (Zero(mij)>p)
return cautare(st, mij, p);
else return cautare(mij+1, dr, p);
}
int main()
{
unsigned int P, m;
do{
f>>P;} while (P<0 && P>putere(8,10));
m=cautare(4*P,5*P,P);
do
{
m=m-1;
}
while (Zero(m)==Zero(P));
g<<m-4;
f.close();
g.close();
}