Guest User

amicable.rs

a guest
Jan 23rd, 2017
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.42 KB | None | 0 0
  1. fn d(n: i32) -> i32 {
  2.     (2..(n / 2 + 1)).
  3.         filter(|m| n % m == 0).
  4.         fold(1, |result, i| result + i)
  5. }
  6.  
  7. fn amicable(n: i32) -> i32 {
  8.     let dn = d(n);
  9.     let ddn = d(dn);
  10.  
  11.     if ddn == n && n != dn && n < 100_000 {
  12.         n
  13.     } else {
  14.         0
  15.     }
  16. }
  17.  
  18. fn main() {
  19.     let mut result = 0;
  20.  
  21.     for i in 1 .. 10_000 {
  22.         result += amicable(i);
  23.     }
  24.  
  25.     println!("{}", result);
  26. }
Advertisement
Add Comment
Please, Sign In to add comment