integer factorization