歐拉計劃(Project Euler)是一個解題網站,站內提供了一系列數學題供用戶解答。python
如下代碼均爲本人親自編寫,僅保證答案與歐拉項目的答案相同。至於代碼質量,能力有限,只能盡力而爲。app
a=0 for i in range(1,1000): if i%3==0 or i%5==0: a += i print "1000之內3和5的倍數之和:",a
sum1=0 sum2=0 i=1 j=1 while j<4000000: j=i+j i=j-i if i%2==0: sum1=i+sum1 print"小於4000000的斐波那契數列和:" ,sum1
#算數基本定理:每一個大於1的天然數都可寫爲質數的積,並且這些素因子按大小排列以後,寫法僅有一種方式 i=2 num=600851475143 while i<num+1: if num%i==0: num=num/i print i else: i=i+1
count=1 for 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=3 f=1 for 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*i print f
求第10001個質數。函數
count=1 num=3 def findPrime(s):#判斷一個數是否爲質數 i=2
import math while i<math.sqrt(s)+1:#依據質數斷定法則
if s%i == 0: return False else: i=i+1 return True while count <10001:#尋找第10001個質數 if findPrime(num): count =count + 1 num = num +2 else: num = num+2 print num-2
sublime顯示計算了1.0s。網站
求知足a+b+c=1000且a^2+b^2=c^2的abc的乘積spa
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*c findabc(1000)
[Finished in 0.3s]
2000000之內的質數和code
i=2 count =0 while i<2000000: if findPrime(i):#第7題中的一個函數 count +=i i +=1 else: i +=1 print count
import math list1=[] list2=[] n=2000000 for 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]=0 for i in range(2,n): if list1[i]==1: list2.append(i) sum=0 for i in list2: sum+=i print sum