Solution 3
This commit is contained in:
parent
1bb656ed01
commit
26d71160a7
34
src/bin/problem_3.rs
Normal file
34
src/bin/problem_3.rs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user