Cod sursa(job #2885310)
| Utilizator | Data | 5 aprilie 2022 19:51:34 | |
|---|---|---|---|
| Problema | Factorial | Scor | 15 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
unsigned long long desc(unsigned long long k1){
unsigned long long sum = 0;
while(k1 >= 5){
k1 /= 5;
sum += k1;
}
return sum;
}
int n;
unsigned long long st = 0, dr = 99999999999, gasit = 0, mij, k;
int main(){
fin >> n;
while(st <= dr && gasit == 0){
mij = (st + dr) / 2;
k = desc(mij);
if(n == k) gasit = mij;
else if(n < k) dr = mij - 1;
else st = mij + 1;
}
fout << gasit;
}