If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.
def sum_multiples(num, limit): """ Calculates the sum of multiples of a given number. Args: num: The multiple. limit: The upper limit. Returns: The sum of the terms of a given multiple. """ sum = 0 for i in xrange(num, limit, num): sum += i return sum def sum(limit): return (sum_multiples(3, limit) + sum_multiples(5, limit) - sum_multiples(15, limit)) print sum(1000)
Is there any better or more pythonic way? I have used generators for a very large calculation. Also, how can I get the running time for a given