I found an interesting website called ProjectEuler.net, where they have 460 programming challenges to be solved (click on Problems). As the ID of the challenge increases, the number of people that are able to solve it decreases. You have to register if you want to keep track of your progress. After you successfully attempt a challenge, a tick will appear and the solution will be available for your reference. You can use any programming language to solve the questions, I will use Python instead of C because Python can compute large numbers such as 100100.
I will post the solutions and explanations of my solutions on Github. (Update: I no longer post my solutions online as this conflicts with the spirit of learning). This will be the only blog post for Project Euler, my progress can be viewed at Github. My aim with this series is to deepen my understanding of computer science in terms of theory and sharpen my programming skills. The source code will be updated if I found a more efficient method to solve the problem.