Brilliant idea, Simon! Though it's somewhat slow comparing to other
solutions, I guess it has a very low memory consumption instead.

Still, my favourite is Sander's - very simple and short and still quite
performant.

Gregory's solution is the fastest (and thats great), however, it is too
big and complicated for only a ~100% performance boost over Sander's,
IMHO.