Yay, I finally made it to level 25 at Project Euler! Look:

I had to write my own sieve of eratosthenes (easy if you don't actually generate all the numbers to strike off :), use a cache more times than I'd like (but it's useful for fibonacci numbers), and once nearly killed my sweet little MacAir with all the swapping (I should look into optimisation for some of the problems, I guess :).