euler 29 distinct powers

Feb 18, 2015  

Statutory Warning: Spoilers ahead!

Finally, we have a one-liner:

euler29 = length $ L.nub $ [a ^ b | a <- [2 .. 100], b <- [2 .. 100]]

(where L is Data.List)

P.S. I did make a dumb error by initiall writing this as two functions, with the second one taking Int instead of Integer, which (I’m disappointed to say) resulted in everything silently overflowing to negative numbers.