faster ``_choose_factor``