Вот исправленная версия вашего кода для меньшего значения от y
до 6. Вы можете расширить его до 100.
Объяснение : Первый цикл проверки дляy
значение.Для каждого значения y
вы проверяете его делители, используя второй цикл while, который работает над x
.Вы обновляете x
на 1 во внутреннем цикле while
и обновляете y
на 1 во внешнем цикле while
.Если что-то неясно, прокомментируйте ниже.
Проблемы с вашим кодом : Вы использовали два цикла while
только для y
, один из которых был избыточным.Более того, вы не увеличивали x
, как вы четко указали в своем вопросе.Ваш elif
также не был необходим, потому что вы увеличивали y
в обоих случаях.
y = 2
while y <= 6: # Replace 6 by 100 here
x = 2 # Reset x to 2 for every y value because you count divisors from 2
while x <= y:
if y % x == 0:
print(x, 'divides', y)
x += 1
y += 1
Выход
2 divides 2
3 divides 3
2 divides 4
4 divides 4
5 divides 5
2 divides 6
3 divides 6
6 divides 6