歐拉計(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
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
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。
求滿足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]
2000000以內(nèi)的質(zhì)數(shù)和
i=2count =0while i<2000000: if findPrime(i):#第7題中的一個函數(shù) count +=i i +=1 else: i +=1print count
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
新聞熱點(diǎn)
疑難解答
圖片精選