aboutsummaryrefslogtreecommitdiff
path: root/rust/005-smallest_multiple.rs
blob: ce671f9ac5e7d4eb01f807cc06694764b0037324 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
* Smallest multiple
* Problem 5
*
* 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
* What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
*/

fn main() {
    let mut end = false;
    let mut n = 2;

    // note to self: iterator are really slow 11s vs 1s without them.
    loop {

        let mut d = 3;
        while d <= 20 {
            if n % d != 0 {
                end = false;
                break;
            } else {
                end = true;
            }
            d += 1;
        }

        if end {
            println!("{}", n);
            break;
        }

        n += 2;
    }
}