add edge case to factor 1
add non-prime-number-based factorization method
use factorization module for #3