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