http://livearchive.onlinejudge.org
http://plg.uwaterloo.ca/~acm00
http://cs.stanford.edu/group/acm
https://www.facebook.com/careers/puzzles.php
http://www.cs.berkeley.edu/~hilfingr/programming-contest/
The bottom of the page also has links to problem sets from a bunch of other contests.
http://community.topcoder.com/tc
Both of these sites run a few algorithm competitions every month.
TopCoder, CodeChef, SPOJ may be what you're looking for.
(Having said that, PE is great fun if you're interested in maths per se).
One good thing about it is that there are different levels of success.
The problems usually come with a simplified version to which the result is provided. That way you can confirm your solutions works. Then, the real problem scales it and you have to improve the algorithm to achieve the performance goal of less then 1min cpu time.
It's also o good way to learn a different language. You can compare your solutions in different languages and evaluate their strengths and weaknesses.