欧拉工程-问题1
文章目錄
决定以后有空时就翻译欧拉工程,从今天开始。不知道应不应该把解法贴出来,有点损人品了,还是决定贴吧。
原文链接 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 |