fn largest_prime_factor(mut n: i64) -> i64 {
let mut div = 2;
let mut max_p_fact = -1;
while n != 0 {
if n % div != 0 {
div += 1;
} else {
max_p_fact = n;
n /= div; // Integer division
if n == 1 {
break;
}
}
}
max_p_fact
}
fn main() {
println!("{}", largest_prime_factor(124)); // 2 x 2 x 31
println!("{}", largest_prime_factor(288)); // 2 x 2 x 2 x 2 x 2 x 3 x 3
println!("{}", largest_prime_factor(1288)); // 2 x 2 x 2 x 7 x 23
println!("{}", largest_prime_factor(100000000)); // 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
}
/*
run:
31
3
23
5
*/