欧拉计划(Project Euler)是一个解题网站,站内提供了一系列数学题供用户解答,解题的用户主要是对数学和计算机编程感兴趣的成年人及学生。目前该站包含了677道不同难度的数学题,每一题都可以通过计算机程序在1分钟内求出结果。该网站自2001年起定期增加新的题目,每题都有对应的讨论区,注册用户在正确提交了某题的答案后才能进入该题的讨论区。 站内根据完成题目的数量将用户分为6个级别,设立了6个排行榜,并用正多面体和球体来表示不同的级别。另外还设有一个欧拉人(Eulerians)排行榜。只有最新题目的前20位解答者才可以上榜。
欧拉计划的第一题是:
列举出10以下所有3或5的倍数,我们得到 3, 5, 6 和 9。他们的和是23。
求1000以下所有3或5的倍数之和。
虽然这题比欧拉计划大多数题目要容易的多,我们仍然可以用它来分析不同解题方法的效率。
用穷举法来测试1000以下的所有自然数,再将它们相加就能得到这题的结果。这很容易实现,用以下两种不同的编程语言都能很快求解出答案。
Python:
print(sum(i for i in range(1000) if i%3 == 0 or i%5 == 0))