Solution 3

This commit is contained in:
Fabian Schmidt 2024-09-16 12:42:55 +02:00
parent 1bb656ed01
commit 26d71160a7

34
src/bin/problem_3.rs Normal file
View File

@ -0,0 +1,34 @@
fn main() {
let result = prime_factors(600851475143).into_iter().max();
println!("Result: {}", result.unwrap());
}
fn prime_factors(number: i64) -> Vec<i64> {
let mut factors = vec![2];
let upper: i64 = (number as f64).sqrt().ceil() as i64;
for i in 3..upper {
let mut is_prime = true;
for factor in factors.clone() {
if i % factor == 0 {
is_prime = false;
break;
}
}
if is_prime && number % i == 0 {
factors.push(i);
}
}
return factors;
}
#[cfg(test)]
mod tests {
use crate::prime_factors;
#[test]
fn it_works() {
let result = prime_factors(13195).into_iter().max();
assert_eq!(result.unwrap(), 29);
}
}