I am kind of attached now to Project Euler. I am not sure how I discovered this great website, but I did, and I am glad it happened.
Project Euler is a website where there are 158 mathematical problems just waiting to be solved. The problems could be solved with a pencil and paper, but they are much more fun if you program something (code, for example) to quickly solve them. You code and test your answer by inputing the solution (usually a number). In case you are wrong, you can keep trying. But if you are right, not only does your ranking go up, but you get access to a forum on all problems you got right.
Maybe the latter sounds funny. Why get access to the forum once you solved the problem? Much a la Linux, I think it makes you go research your topic and think of a good algorithm versus just cheat. I know I had to do my fare amount of research on Pythagorean triplets!
I like this website for two reasons. The first one is that all the coding involves a mathematical solution. Seldom do you have to code features alien to the problem. I can only think of once when I did some off-topic coding to feed a matrix into a Python list ADT. The second reason is the plethora of other languages you can learn about in the forums. I had no idea what Haskell o J looked like, or that some people still make math solutions… in assembler!
Take a peek and try one problem. I guarantee you will be satisfied you did. Prime factors considered and all 🙂