EulerProject.png
??歐拉計劃(Project Euler)是一個解題網(wǎng)站嘁酿,包括一系列有挑戰(zhàn)性的數(shù)學(xué)與計算機(jī)編程題隙券;要解開它們,需要的不止是數(shù)學(xué)知識:盡管數(shù)學(xué)能夠幫助你找到一些優(yōu)雅而有效的方法闹司,大多數(shù)題目仍需要借助計算機(jī)和編程技巧來完成解答娱仔。本系列會持續(xù)按序更新對全部問題的基于Python3的解決方法。此外本系列文章僅提供問題的中文版游桩,英文題目請參見網(wǎng)站拟枚。
1、3和5的倍數(shù)
??小于10的非零自然數(shù)中是3或者5的倍數(shù)有3众弓、5恩溅、6、9谓娃,這四個數(shù)的和為23脚乡。計算小于1000的自然數(shù)中是3或者5的倍數(shù)的所有數(shù)的和。
Python3解答
an=sum([i for i in range(1,1000) if i%3==0 or i%5==0])
print(an)
答案:233168
2滨达、斐波那契數(shù)列中的偶數(shù)
??斐波那契數(shù)列中每一項均是由前兩項的和組成奶稠,以1和2作為開始的兩項,則前10項為1捡遍、2锌订、3、5画株、8辆飘、13、21谓传、34蜈项、55、89续挟。
??請計算最后一項不超過400萬的斐波那契數(shù)列中的所有偶數(shù)之和紧卒。
Python3解答
a,b=1,2
fan=2#開始的兩項中的偶數(shù)
while a+b<=4000000:
a,b=b,a+b
if(a+b)%2==0:#只計算偶數(shù)
fan+=a+b
print(fan)
答案:4613732
3、最大素因數(shù)
??13195的素因數(shù)為5诗祸、17跑芳、13和29轴总。求60051475143的最大素因數(shù)。
Python3解答
def getfactor(num):
arr = []
i = 2
while num != 1:
if num % i == 0:
while num % i == 0:
arr.append(i)
num /= i
i = i + 1
return max(arr)
print(getfactor(600851475143))
答案:6857
4博个、最大的乘積回文數(shù)
??所謂回文數(shù)就是從后往前和從前往后讀是一樣的數(shù)怀樟。由兩個2位數(shù)相乘得到的最大乘積回文數(shù)是 9009 = 91 × 99。
??找出由兩個3位數(shù)相乘得到的最大乘積回文數(shù)坡倔。
Python3解答
def an_palindromic(number): # 判斷回文數(shù)
num = str(number)
if num == num[::-1]:
return True
result = 0
for ip in range(100, 1000):
for jp in range(100, 1000):
pro = ip * jp
if an_palindromic(pro):
result = max([result, pro])
print(result)
答案:993*913=906609
5漂佩、最小倍數(shù)
??能被1到10這10個數(shù)整除的最小的正數(shù)是2520脖含。計算最小的能夠被1到20整除的正數(shù)罪塔。
Python3解答
def an_decompose(num):
arr = []
ifg = 2
while num != 1:
if num % ifg == 0:
while num % ifg == 0:
arr.append(ifg)
num /= ifg
ifg = ifg + 1
return arr
an=[]#20以內(nèi)的數(shù)分解為質(zhì)因數(shù)
for i in range(2,21):
for w in an_decompose(i):
an.append(w)
def an_list(list1,list2):
for i in list2:
while list1.count(i)<list2.count(i):
list1.append(i)
return list1
an=list(set(an))
fan=2
while fan<=20:#如果一個數(shù)的全部質(zhì)因數(shù)包括在an里,則不增加养葵。否則少幾個加幾個征堪。
an=an_list(an,an_decompose(fan))
fan+=1
fan=1#計算最終的乘積
for i in an:
fan*=i
print(fan)
答案:232792560
持續(xù)更新,歡迎討論关拒,敬請關(guān)注5柩痢!着绊!