Cod sursa(job #3175077)
| Utilizator | Data | 25 noiembrie 2023 12:27:18 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
#define int long long
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int cnt(int x){
int ans = 0;
for(int p = 5; p <= x; p *= 5){
ans += (x / p);
}
return ans;
}
signed main(){
int p;
fin >> p;
int st = 0, dr = 1000000000000ll;
while(dr - st > 1){
int mid = (st + dr) / 2;
if(cnt(mid) >= p){
dr = mid;
}else{
st = mid;
}
}
if(cnt(dr) != p){
fout << -1 << '\n';
}else{
fout << dr << '\n';
}
return 0;
}
