国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

歐拉項(xiàng)目python代碼(1--10)

2019-11-14 17:36:31
字體:
供稿:網(wǎng)友

歐拉計(jì)劃PRoject Euler)是一個解題網(wǎng)站,站內(nèi)提供了一系列數(shù)學(xué)題供用戶解答。

以下代碼均為本人親自編寫,僅保證答案與歐拉項(xiàng)目的答案相同。至于代碼質(zhì)量,能力有限,只能盡力而為。

第一題:

a=0for i in range(1,1000):    if i%3==0 or i%5==0:        a += iprint "1000以內(nèi)3和5的倍數(shù)之和:",a

 

第二題:

sum1=0sum2=0i=1j=1while j<4000000:      j=i+j      i=j-i      if i%2==0:        sum1=i+sum1    print"小于4000000的斐波那契數(shù)列和:" ,sum1

 

第三題:

#算數(shù)基本定理:每個大于1的自然數(shù)均可寫為質(zhì)數(shù)的積,而且這些素因子按大小排列之后,寫法僅有一種方式i=2num=600851475143while i<num+1:       if num%i==0:          num=num/i          print i       else:          i=i+1

 

 

第四題:

解法1(僅適用于該題):

count=1for i in range(100,999):  for n in range(100,999):      c=n*i      e1=c%10      c=c/10      e2=c%10      c=c/10      e3=c%10      c=c/10      e4=c%10      c=c/10      e5=c%10      c=c/10      e6=c%10      c=c/10      if e1==e6 and e2==e5 and e3==e4:        if count < n*i:          count = n*i          print count

 

解法2(具有通性):

a=3f=1for i in range(10**(a-1),10**a-1):   for n in range(10**(a-1),10**a-1):       c=n*i       d=str(c)       e=d[::-1]       if d==e:          if f<n*i:             f=n*iprint f

 

第五題,第六題略

第七題

求第10001個質(zhì)數(shù)。

count=1num=3def findPrime(s):#判斷一個數(shù)是否為質(zhì)數(shù)    i=2
import math while i<math.sqrt(s)+1:#依據(jù)質(zhì)數(shù)判定法則
if s%i == 0: return False else: i=i+1 return Truewhile count <10001:#尋找第10001個質(zhì)數(shù) if findPrime(num): count =count + 1 num = num +2 else: num = num+2print num-2

sublime顯示計(jì)算了1.0s。

第9題:

求滿足a+b+c=1000且a^2+b^2=c^2的abc的乘積

def findabc(h):    for a in range(1,h):        for d in range(1,h):            b=d            c=1000-a-d            if (a**2+b**2==c**2) and (c>=0) and (a<b<c):
print a,b,c #該程序會輸出a,b,c的值
print a*b*cfindabc(1000)


[Finished in 0.3s]

 第10題:

2000000以內(nèi)的質(zhì)數(shù)和

解法1:

i=2count =0while i<2000000:    if findPrime(i):#第7題中的一個函數(shù)        count +=i        i +=1    else:        i +=1print count

 解法2:

import mathlist1=[]list2=[]n=2000000for i in range(0,n):    list1.append(1)for i in range(2,int(math.sqrt(n))):    sum=i    if list1[sum]==1:        while(sum+i<n):            sum+=i            list1[sum]=0for i in range(2,n):    if list1[i]==1:        list2.append(i)sum=0for i in list2:    sum+=iprint sum

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 长葛市| 东宁县| 延寿县| 昌邑市| 南宫市| 九台市| 宁强县| 汉源县| 彭泽县| 淅川县| 二连浩特市| 获嘉县| 茶陵县| 翁牛特旗| 芜湖市| 家居| 马关县| 平顶山市| 太康县| 柯坪县| 惠安县| 于田县| 景东| 苏州市| 南阳市| 西华县| 修水县| 临颍县| 台前县| 六安市| 洛阳市| 洪湖市| 永丰县| 乌鲁木齐市| 嵊州市| 汽车| 塘沽区| 彰化县| 巩留县| 太白县| 吴忠市|