分类 Project Euler 中的文章

Euler第四题

寻找一个最大的为两个3位数乘积的回文。 回文就是正着念,反着念相同的数或单词,如 9009 = 91×99。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 from time import clock start=clock() z=999 a=[0,0,0] flag=False for i in range(100000): a[0]=int(z/100) a[1]=int((z-100*a[0])/10) a[2]=int(z-100\*a[0]-10\*a[1]) palindrome=100000\*a[0]+10000\*a[1]+1000\*a[2]+100\*a[2]+10*a[1]+a[0] #print(palindrome) product=999 for j in range(999): if palindrome/product<1000 and palindrome%product==0: print("the answer is {0}={1}".format(palindrome,product,int(palindrome/product))) flag=True break product=product-1 z=z-1 if flag==True or palindrome<0: break print("{0:5f}s".……

阅读全文

Project Euler 第三题的一个nb算法

题目:求600851475143 的最大质因数。 搞了2,3个小时,搞出来的算法效率都很低。网上发现一个nb算法。改成python后如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 def maxPrime(): n=600851475143 d=2 while d<n/d: if n%d==0: n=int(n/d) else: d=d+1 return n if __name__=="__main__": from time import clock start=clock() finish=clock() print("the largest prime factor is {0}\t\t{1}s".format(maxPrime(),(finish-start)/1000000)) 结果: the largest prime factor is 6857 4.462223927783368e-13s 哎,差距啊~……

阅读全文