Извиняюсь. По поводу замены (W div 2) на (W-1) это рудиментарный остаток от изучения и тестирования функции (забыл назад поставить как было).
А под выражением «самый грубый способ вычисления.» имелось ввиду не ваша функция (
Код:
Function Ideal(W:Integer):Boolean;
)
А тот факт что подача аргумента в неё никак не обсчитывается.
For k:=2 to M do
То есть подаются все числа подряд. Тогда как во втором примере уже до вызова функции (
Код:
Function Ideal(W:Integer):Boolean;
) отсеивается солидная доля чисел. Что более так сказать элегантно.
И еще раз выражением «самый грубый способ вычисления.» никого не хотел обидеть или поддеть. Скорее показать наличие альтернатив.