Cod sursa(job #2002401)
Utilizator | Data | 19 iulie 2017 18:38:27 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int zero(int nr)
{
int zerouri=0;
while(nr)
{
zerouri+=nr/5;
nr/=5;
}
return zerouri;
}
int binara(int p,int lo, int hi)
{
int mi;
while (lo <= hi)
{
mi=lo+(hi-lo)/2;
if (zero(mi)>p)
hi=mi-1;
else
if (zero(mi)==p)
return mi-(mi%5);
else
lo=mi+1;
}
return -1;
}
int main()
{
fin >> p;
if (p==0)
fout << 1;
else
fout << binara(p,1,0x3f3f3f3f);
return 0;
}