Ограничивающим условием i <= num / i
является оптимизация производительности:
Учитывая, например, num = 11
и i = 3
, мы до сих пор проверяли, можно ли разделить 11 на 2 (нет), и теперь переходим к3, и мы должны это проверить, ответ - нет, он не может быть разделен на 3. Теперь мы переходим к 4, должны ли мы все еще проверять, можно ли разделить 11 на это?Такое деление даст 2.75, значение меньше 3, которое мы уже проверили.Любое большее значение i
даст еще меньшие значения, все из которых мы уже проверили, поэтому нет смысла проверять дальше.Мы уже знаем ответ.