chronodekar, you don't actually even need to have a statement to check for i % 15 == 0. What I did is put a statement to check for i%3 OR i% 5, so multiples of 3 and 5 such as 15 are still only added once.
Looking at the Euler discussion forum, there's actually an even more elegant solution, through the use of (n/2)(l+a) for finding the sum of a sequence of terms. At small values such as what the first problem asks for with (3, 5, 1000), that would work pretty well on its own.
I gave myself the challenge of writing something to cut down on processing times at REALLY big numbers to basically extend my learning and understanding on my own initiative, and basically experience with thinking out problems. I would eliminate the last function of my revised program, and instead code something to find the last possible term for each value. For example, if I was given something like (12763, 339521, 100,000,000,000):
#Find least common multiple of 12763 and 339521 (primeFactors, buildDict, and LCM functions will do this really quick)
#Find last possible term of 12763, 339521, and the LCM range 100,000,000,000
#This could be accomplished by taking 100,000,000,000 - 12763, dividing it by 12763. I get 7835148.5, so round up to 7835149 and multiply by 12763. I get 7835148 * 12763 = 99,999,993,924. I know it's the 7835148th term and the maximum within the range of 100,000,000,000.
#Do this for 339521 and the LCM. Find the sum of the sequences for 12763 and 339521, add them, then subtract the sum sequence for the LCM.
I'll be fooling around with a lot of my own projects, too, and maybe use PyGame to do a couple of simpler things (number game, move onto something like a platformer or bullet hell). The first big project I have on my mind is doing something like a rogue-like RPG, played out over a board-game style map.