文章目錄

决定以后有空时就翻译欧拉工程,从今天开始。不知道应不应该把解法贴出来,有点损人品了,还是决定贴吧。

原文链接 http://projecteuler.net/problem=1

Multiples of 3 and 5

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.

3和5的倍数

如果我们列出10以内是3或者5的倍数的自然数,我们将得到3,5,6和9.这些倍数的总和是23.

求1000以内3或者5的倍数的总和。

解答:

最直接的方法,判断[1, 1000)中的自然数,将是3或者5的倍数相加,Python就一句

1
print sum([i for i in xrange(1, n) if i % 3 == 0 or i % 5 == 0])

还有一种更简便的方法,可以直接用笔算出来。例如求[1, 1000)中3的倍数的和,
这里3的倍数是3,6,9,。。。,999。也就是3 1,3 2,3 3,。。。3 333。所以求得1 + 2 + 。。。+ 333后乘以3就得到了最终结果,写成Python代码如下。

1
sum(xrange(1, 1 + (1000 - 1) / 3)) * 3
文章目錄