Pagini recente » Cod sursa (job #1374012) | Cod sursa (job #1046722) | Cod sursa (job #2551785) | Cod sursa (job #2414190) | Cod sursa (job #2776187)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int multiplii[20000001];
int nr_de_zerouri(int n);
int cautare(int l,int r,int p);
int main()
{
int p;
fin >> p;
multiplii[0] = 1;
int j = 5;
for(int i = 1; i < 20000001; i++)
{
multiplii[i] = j;
j += 5;
}
fout << cautare(0,20000001,p);
fin.close();
fout.close();
return 0;
}
int nr_de_zerouri(int n)
{
int nr = 0;
for(int i = 5; n / i >= 1; i *= 5)
{
nr += n / i;
}
return nr;
}
int cautare(int l,int r,int p)
{
if(l > r)
{
return -1;
}
else
{
int m = (l + r) / 2;
int k = nr_de_zerouri(multiplii[m]);
if(k > p)
{
return cautare(l, m - 1, p);
}
else
{
return cautare(m + 1, r, p);
}
}
}