I have started doing the Rust track on Exercism, but I am writing in a very “C+±like” style. Especially when I need to iterate over a list of stuff, I only get to think in for and while loops, not all the iterator adaptors. Where and how can I get to learn how to use iterators instead? Here is a working program, but I want to know if I could do it more idiomatically and efficiently. It is summing all the unique multiples of a list of numbers below a certain limit (exclusive), e.g. all the multiples of 3 and 5 below 20 is 3, 5, 6, 9, 10, 12, 15, 18 and their sum is 78.

```
pub fn sum_of_multiples(limit: u32, factors: &[u32]) -> u32 {
let mut multiples = vec![0];
for i in factors.iter() {
if *i != 0 {
for j in (*i..limit).step_by(*i as usize) {
if !(multiples.contains(&j)) {
multiples.push(j);
}
}
}
}
multiples.iter().sum()
}
```