Pagini recente » Cod sursa (job #854630) | Cod sursa (job #1979456) | Cod sursa (job #1200974) | Cod sursa (job #194871) | Cod sursa (job #604533)
Cod sursa(job #604533)
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int f(int n)//numarul de zerouri ale lui n!
{
int k = 5, nr = 0;
while(n / k)
{
nr += n/k;
k *= 5;
}
return nr;
}
int main()
{
int n, p, li, ls, ok, t;
fin >> p;
li = 1; ls = 1000000000; ok = 0;
while(li <= ls && !ok)
{
n = (li + ls)/2;
t = f(n);
if(t == p) ok = 1;
else if(t < p) li = n + 1;
else ls = n - 1;
}
if(ok)
{
while(n > 0 && f(n-1) == p) n--;
fout << n;
}
else fout << -1;
fin.close(); fout.close();
return 0;
}