Cod sursa(job #2270742)
Utilizator | Girbovan Robert Luca BlueLuca888 | Data | 27 octombrie 2018 14:56:43 |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int p, n, r, c, suma, st, dr, mid, w, v[100000];
int main (){
fin>>p;
st = 1; dr = p*5;
while (st <= dr) {
r = (st + dr)/2;
c = 5;
suma = 0;
while (c <= r) {
suma += r/c;
c *= 5;
}
/// in care interval cautam in continuare rezultatul ? (st r-1 sau r+1 dr)
if (suma >= p)
dr = r-1;
else
st = r+1;
}
fout<<st;
return 0;
}