ЗЗЫ алгоритм в коде неоптимален до неприличия.
Этот алгоритм неоптимален до совершенства. В том смысле, что трудно придумать еще более неоптимальный.
Но может в этом и суть.
Мне, например, нравится написать код в лоб, а потом смотреть как путем последовательных улучшений время расчета уменьшается с десятка минут/часов до пары/доли секунд. Здесь, правда, неоптимальность незаметна для глаза. Но вот если вместо

взять

- отличное поле для работы получается.