http://addagram.mytestbench.com/
I too have played with that one, but I used JavaScript... These problems are engaging enough to keep you interested, especially when you are trying out a new language. The challenge is significant, and the optimizations required to solve these help you explore some the deeper depths of a language, when compared to a "hello world!" type of problem.
Oddly, one of my friends (absolutely brilliant guy) sent ITA a few solutions and they interviewed him. I know an interview isn't overly efficient, but I lost a good bit of respect for ITA when they didn't offer this guy a position or further interviews. The guy is brilliant and dedicated-- it's always possible that doesn't come through in any given interview. Still, it's good as it means it's easier to get this fellow involved in my startup when needed.
Add-a-gram for the curious: http://itasoftware.com/careers/puzzle_archive.html?catid=39#...