Skip to content
Advertisement

Algorithm to get the submultiples of each number in a range

I have this exercise in mind, I keep trying to solve it in Java but I’m not able to create a correct algorithm to get the submultiples of each number in a range, the start and the end of the range is user defined. Besides, the number 1 doesn’t count as a submultiple.

For example, in a range between 3 and 9, the output of the app would be:

start: 3
end: 9

Submultiples of 3:  Doesn't have submultiples
Submultiples of 4:  2
Submultiples of 5:  Doesn't have submultiples
Submultiples of 6:  3 2  
Submultiples of 7:  Doesn't have submultiples
Submultiples of 8:  4 2
Submultiples of 9:  3

It would be very helpful if someone can help me with this exercise. Thanks for reading!

Advertisement

Answer

You can do it using to nested loops, like this:

class HelloWorld {
    public static void main(String[] args) {
        int start = 3;
        int end = 9;
        boolean foundMultiples = false;
        for(int i=start; i<=end; i++) {
            foundMultiples = false;
            System.out.print("Submultiples of " + i + ": ");
            for(int j = 2; j < i; j++) {
                if(i % j == 0) {
                    foundMultiples = true;
                    System.out.print(j + " ");
                }
            }
            if(!foundMultiples) {
                System.out.print("Doesn't have submultiples");
            }
            System.out.println();
        }
    }
}

Here, we loop through the user entered range, and then found multiples of each number in an inner loop. We keep track of if any multiple was found, using a boolean variable.

Advertisement