它是 Euler 项目 #4 的答案。
回文数的两种读法都是一样的。由两个 2 位数字的乘积构成的最大回文数是9009 = 91 99
。
找出由两个 3 位数字的乘积构成的最大回文数。
回答:
906609
代码是:
from multiprocessing import Pool
from itertools import product
def sym(lst):
rst=[]
for x,y in lst:
tmp=x*y
if rec(tmp):
rst.append(tmp)
return rst
def rec(num):
num=str(num)
if num == "".join(reversed(num)): return True
else: return False
if __name__ == "__main__":
pool=Pool(processes=8)
lst=product(xrange(100,1000),repeat=2)
rst=pool.map(sym,lst)
#rst=sym(lst)
print max(rst)
当我运行这个:
# TypeError:'int' object is not iterable
但我无法理解...不是列表可迭代的吗?还是我的代码有错误?