Integer factorization algorithms