是一个解题网站,站内提供了一系列数学题供用户解答。
以下代码均为本人亲自编写,仅保证答案与欧拉项目的答案相同。至于代码质量,能力有限,只能尽力而为。
第一题:
a=0for i in range(1,1000): if i%3==0 or i%5==0: a += iprint "1000以内3和5的倍数之和:",a
第二题:
sum1=0sum2=0i=1j=1while j<4000000: j=i+j i=j-i if i%2==0: sum1=i+sum1 print"小于4000000的斐波那契数列和:" ,sum1
第三题:
#算数基本定理:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式i=2num=600851475143while 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
解法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
第五题,第六题略
第七题
求第10001个质数。
count=1num=3def findPrime(s):#判断一个数是否为质数 i=2 import math while i
sublime显示计算了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
第10题:
2000000以内的质数和
解法1:
i=2count =0while i<2000000: if findPrime(i):#第7题中的一个函数 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