Cod sursa(job #1981937)
Utilizator | Data | 17 mai 2017 11:01:26 | |
---|---|---|---|
Problema | Factorial | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
int zerouri(int x)
{
int k = 0;
while(x){
k += x/5;
x /= 5;
}
return k;
}
int functia_cu_p(int x)
{
int hi = x * 5, lo = x*4, m;
for (m = (lo+hi)/2; lo <= hi; m = (lo+hi)/2){
int y = zerouri(m);
if(y == x)
return m-m%5;
else if (y > x)
hi = m-1;
else lo = m+1;
}
return -1;
}
int main()
{
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int p;
fin >> p;
fout << functia_cu_p(p);
fin.close();
fout.close();
return 0;
}