Кажется, я не могу понять, почему в питоне это бесконечный цикл ??
for i in range(n): j=1 while((i*j)<n): j+=1
не должен внешний цикл идти n раз. увеличивать j, пока оно не станет равным n div i каждый раз?
i начинается с 0, поэтому условие while всегда остается верным; см. диапазон документов для деталей.
i
0
while
Вы можете создать «трассировку», отображающую изменения состояния переменных.
и т.д.
Вы можете доказать, что ваш след верен, вставив print операторов.
print
В случае сомнений распечатайте его.
i начинается с нуля, поэтому условие для внутреннего цикла всегда равно 0*j < n, что всегда будет истинным.
0*j < n
Поскольку начальное значение i равно 0.
Первое значение в i будет равно 0. 0 в любом случае равно 0.
range(n) начинается с 0, а не 1. 0 * j всегда будет меньше n.
range(n)
1
0 * j
n
потому что мне 0! и я * J = 0
При первом прохождении внешнего цикла внутренний цикл становится бесконечным циклом. Неважно, что происходит после этого. Там нет "после бесконечности".
я равно 0 переписать ваш цикл, как
for i in range(1,n): j=1 while((i*j)<n): j+=1
с использованием этой версии функции диапазона создаст диапазон, который начинается с 1 вместо 0