Делители положительного числа: вывести все делители, количество и их сумму (базовый вариант)

Почему этот базовый вариант решения задачи не является оптимальным? Как можно оптимизировать решение задачи?

<xml xmlns="http://www.w3.org/1999/xhtml">
<block type="variables_set" x="163" y="163">
<field name="VAR">Число</field>
<value name="VALUE">
<block type="text_prompt_ext">
<mutation type="NUMBER"></mutation>
<field name="TYPE">NUMBER</field>
<value name="TEXT">
<block type="text">
<field name="TEXT">Введите число</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set">
<field name="VAR">Количество делителей</field>
<value name="VALUE">
<block type="math_number">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="variables_set">
<field name="VAR">Сумма делителей</field>
<value name="VALUE">
<block type="math_number">
<field name="NUM">0</field>
</block>
</value>
<next>
<block type="controls_for">
<field name="VAR">i</field>
<value name="FROM">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<value name="TO">
<block type="variables_get">
<field name="VAR">Число</field>
</block>
</value>
<value name="BY">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
<statement name="DO">
<block type="controls_if">
<value name="IF0">
<block type="logic_compare">
<field name="OP">EQ</field>
<value name="A">
<block type="math_modulo">
<value name="DIVIDEND">
<block type="variables_get">
<field name="VAR">Число</field>
</block>
</value>
<value name="DIVISOR">
<block type="variables_get">
<field name="VAR">i</field>
</block>
</value>
</block>
</value>
<value name="B">
<block type="math_number">
<field name="NUM">0</field>
</block>
</value>
</block>
</value>
<statement name="DO0">
<block type="text_print">
<value name="TEXT">
<block type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">Делитель: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">i</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set">
<field name="VAR">Количество делителей</field>
<value name="VALUE">
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<block type="variables_get">
<field name="VAR">Количество делителей</field>
</block>
</value>
<value name="B">
<block type="math_number">
<field name="NUM">1</field>
</block>
</value>
</block>
</value>
<next>
<block type="variables_set">
<field name="VAR">Сумма делителей</field>
<value name="VALUE">
<block type="math_arithmetic">
<field name="OP">ADD</field>
<value name="A">
<block type="variables_get">
<field name="VAR">Сумма делителей</field>
</block>
</value>
<value name="B">
<block type="variables_get">
<field name="VAR">i</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</statement>
</block>
</statement>
<next>
<block type="text_print">
<value name="TEXT">
<block type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">Количество делителей: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">Количество делителей</field>
</block>
</value>
</block>
</value>
<next>
<block type="text_print">
<value name="TEXT">
<block type="text_join">
<mutation items="2"></mutation>
<value name="ADD0">
<block type="text">
<field name="TEXT">Сумма делителей: </field>
</block>
</value>
<value name="ADD1">
<block type="variables_get">
<field name="VAR">Сумма делителей</field>
</block>
</value>
</block>
</value>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</next>
</block>
</xml>