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

 взять 

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