自己做题玩
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.
#最笨的办法,直接去算
</pre><pre name="code" class="python">def sum_multiples():
sum_m = 0
for i in range(3,1000):
if i % 3 == 0 or i % 5 == 0:
sum_m += i
return sum_m
print(sum_multiples())
或者
3 *(1+... + 333) = 3的倍数和
5 * (1+...+199) = 5的倍数和
15 * (1 + ... 66) = 15的倍数和
target = 999
def sumDivisibleBy(n):
p = target // n
return n * p * (p + 1) / 2
print(sumDivisibleBy(3) + sumDivisibleBy(5) - sumDivisibleBy(15))