brents factorization method