Not too long ago I was introduced to a website called Project Euler:
Once you create an account on this website you are free to tackle hundreds of creative math puzzles. They are wonderful because they not only require solid mathematical analysis to solve, but also generally require one to write programs to perform the task at hand. The early problems are incredibly simple, but they get progressively harder as you go on; most of the latest problems look like complete gibberish to me. To solve these problems, I decided to go with Python as it is very simple and quick to develop with and it includes many useful features right out of the box like arbitrary precision arithmetic (a must for many Project Euler problems). Using python my solutions are generally no more than a mere 10-20 lines of code, but generally a fair amount of time is spent crafting those lines as I analyze the problem. Once a problem is complete, a forum thread opens up to you that is visible to all others who have solved it. This way, you can share your solutions with others around the world. Looking through these threads I find a variety of different languages being used: C, C++, python, Java, and others. Sometimes I find x86 assembly solutions (Those people must be a little insane). Overall however, this site was a wonderful way for me to program in Python with a more mathematical feel; I would suggest all of you to try it as well.