Pagini recente » Cod sursa (job #2267827) | Cod sursa (job #1910323) | Cod sursa (job #1958920) | Cod sursa (job #1361323) | Cod sursa (job #2612355)
use std::cmp::Ordering::{Less, Equal, Greater};
fn count_zeroes(mut num: i32) -> i32 {
let mut count = 0;
while num > 0 {
count += num / 5;
num /= 5;
}
count
}
fn find_num(cnt: i32) -> i32 {
let mut left = 1;
let mut right = i32::MAX;
while left < right {
let mid = left + (right - left) / 2;
let n = count_zeroes(mid);
match n.cmp(&cnt) {
Equal => return mid - mid % 5,
Greater => right = mid - 1,
Less => left = mid + 1
}
}
-1
}
fn main() {
let s = std::fs::read_to_string("fact.in").unwrap();
let result = find_num(s.parse::<i32>().unwrap());
std::fs::write("fact.out", result.to_string()).unwrap();
}