Euler 003 Rust Solution

Largest prime factor

Problem

https://projecteuler.net/problem=3

The prime factors of 13195 are 5, 7, 13 and 29.

What is the largest prime factor of the number 600851475143?

Answer: 6857

Solution

euler003.rs

pub fn largest_prime_factor(number: u64) -> u64
{
  let mut answer = 1;
  let mut point = 3;
  let mut divisor = number;

  while divisor % 2 == 0 {
    answer = 2;
    divisor = divisor/2;
  }

  while divisor != 1 {
      while divisor % point == 0 {
        answer = point;
        divisor = divisor/point;
      }
      point += 2;
  }

  return answer;
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn euler_003() {
        assert_eq!(largest_prime_factor(600_851_475_143), 6857);
    }
}

See Also

# cpp go java php ruby rust javascript
1
2
3  
4    
5    
6      
7          
8          
9          
10          
11          
12          
# cpp ruby
13
14
15
16
17
18
19
20  
21  
22  
23  
24