Cod sursa(job #2706600)
| Utilizator | Data | 15 februarie 2021 14:31:56 | |
|---|---|---|---|
| Problema | Factorial | Scor | 45 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream in ("fact.in");
ofstream out ("fact.out");
int check (long long n) {
int p = 5,rez=0;
while( n >= p) {
rez += n/p;
p *= 5;
}
return rez;
}
int main()
{
long long st = 0, dr = 100000000,sol,put;
in>>put;
while(st <= dr) {
int mij = (st + dr) >> 1;
if(check(mij) < put) {
st = mij+1;
}
else
if(check(mij) > put) {
dr = mij-1;
}
else {
sol = mij;
dr = mij-1;
}
}
out<<sol;
return 0;
}
