Cod sursa(job #679276)
| Utilizator | Data | 12 februarie 2012 23:08:56 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
//Cautare binara dupa ideea originala a lui Mihai Patrascu
#include <fstream>
using namespace std;
int aew(int go)
{
int r = 0;
while(go>=1) r+=go/5, go/=5;
return r;
}
int main()
{
int n, step, i;
ifstream in("fact.in"); in >> n; in.close();
for (step = 1; step < 2000000; step <<= 1);
for (i = 0; step; step >>= 1)
if (i + step < 2000000 && aew(i+step) < n) i += step;
ofstream out("fact.out"); out << i + 1; out.close();
return 0;
}
