Euler第三题

寻找一个最大的为两个3位数乘积的回文。

回文就是着念,反着念相同的数或单词,如 9009 = 91 × 99。

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}×{2}”.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”.format(clock()-start))

发表评论

无觅相关文章插件,快速提升流量