用Python解答 ProjectEuler问题(1)

有个很有意思的网站 ProjectEuler.net ,提出了200多道数学问题,要求读者用计算机求解,不限制所用的计算机语言。
(2008年11月)试着用Python做了几道,挺有意思的。

[list]
[*] Add all the natural numbers below one thousand that are multiples of 3 or 5.
[*] Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed four million.
[*] Find the largest prime factor of a composite number.
[*] Find the largest palindrome made from the product of two 3-digit numbers.
[*] What is the smallest number divisible by each of the numbers 1 to 20?
[/list]

[b]E001[/b]
[i]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.

求1000以下,所有是3或5倍数的数之和。[/i]

def problem1():
a, b, c = 3, 5, 999
f = lambda x,lmt=c: x*(lmt/x)*(lmt/x+1)/2
return f(a)+f(b)-f(a*b)

if __name__=='__main__':
print str(problem1())

关键是 1000以内能被3整除的数之和是 3(1+2+3+...+333)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值