Pagini recente » Cod sursa (job #342605) | Cod sursa (job #1676990) | Cod sursa (job #2051725) | Cod sursa (job #661472) | Cod sursa (job #2758337)
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
//functie care verifica daca numarul are n zero-uri
int cifre(int n)
{
int nr = 0;
for (int i=5; n/i>=1; i*=5)
nr += n / i;
return nr;
}
int main()
{
int p, ok = 0;
f>>p;
if(p == 0)
g<<1;
else
{//aflam numarul cel mai mic, al carui factorial are n zero-uri
int st = 0, dr = 1000000000;
while(ok == 0 && st <= dr)
{
int mij=st+(dr-st)/2;
int k = cifre(mij);
//verificam daca mijlocul contine n zero-uri
if(k == p)
{
g<<mij / 5 * 5;
ok = 1;
}
else if(cifre(mij) > p)
dr = mij - 1;
else
st = mij + 1;
}
if(ok == 0)
g<<-1;
}
f.close();
g.close();
return 0;
}