Acho que está quase lá, consegui limitar muito o intervalo onde f pode ser composto. Espero que não passe o limite dos 20k chars.
imo.zip