### Number Grid

This activity is part of a curriculum.

While you can work through this activity right on this page, we recommend you start a curriculum now to get an optimal learning experience.

Let's display the first 100 natural numbers.
We will arrange them in a grid so we can see some interesting patterns!

The grid consists of ten rows, and each row consists of 10 columns.
Each cell of the grid contains a number.

The last digit, the ones, corresponds to the column number (assuming we number columns from 0 to 10).
The first digit, the tens, corresponds to the row number (again, assuming we number rows from 0).

Given a `column_number`

and a `row_number`

, we can determine the value in that cell:

`row_number * 10 + column_number * 1`

**Complete** the implementation of the given `number_grid`

function.

Let's write a slightly more powerful function:
one that creates a number grid and highlights certain numbers with a red background.

Specifically, we would like to highlight each number that is a multiple of a given value.
For example, we could highlight all the multiples of 3 (0, 3, 6, 9, 12, 15, ...),
which would look as follows:

To determine whether a given value is a multiple of some number
(is divisible by that number),
we can compute the remainder (`value % number`

)
and then check whether the remainder is 0.

**Implement** the `number_grid_multiples`

function to create the number grid
with all cells that contain multiples of the given number highlighted in red.

The multiples of 3 are 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, ...

If we only look at the last digits of these numbers, we see a repeating pattern:
0, 3, 6, 9, 2, 5, 8, 1, 4, 7, 0, ...

This sequence of numbers looks somewhat arbitrary.
However, when we look at our visualization,
we see how this forms a pattern made of diagonal stripes across the number grid.
This is because the last multiple of 3 under 10 is one less than 10,
and so with every row we move down, we also move a column to the left.

**Produce and show** a number grid with multiples of 9 highlighted.

Do you see the diagonal pattern?

**Produce and show** a number grid with the opposite diagonal highlighted.

Let's create an animation
to highlight the multiples of 1, 2, 3, 4, ... 20.
Each frame of the animation is a number grid with the multiples highlighted.

By programming your own number grid visualization
you practiced iterative computation,
using **for-loops** and using **for-comprehensions**.
You also used the modulo operator (`%`

) to compute the **remainder** of a division.

On top of that you got to discover various regularities
in the form of striped patterns in the number grid.