The answer is B. The program prints:
5 10

Why?
% gives the remainder after dividing. A remainder of 0 means the number divides exactly by 5, so the program prints the multiples of 5 up to 10.
Trace table
A trace table follows the program step by step. Here’s this one:
| number | number % 5 | printed? |
|---|---|---|
| 1 | 1 | |
| 2 | 2 | |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 0 | yes |
| 6 | 1 | |
| 7 | 2 | |
| 8 | 3 | |
| 9 | 4 | |
| 10 | 0 | yes |
The code again
for number in range(1, 11):
if number % 5 == 0:
print(number)
Try it: change one number in the program and predict the new output before you run it.