drastically improves performance of haskell euler 3.

runtime: ~1.5 seconds. previous runtime: ~15 minutes!

the factors function will now `mod` values [1..sqrt(num)]
instead of [1..num]