オイラープロジェクト#4の答えです。
回文数はどちらの方法でも同じように読めます。2 つの 2 桁の数の積から作られる最大の回文は です9009 = 91 99
。
2 つの 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
しかし、私はそれを理解できません...リストは反復可能ではありませんか? または私のコードにエラーがありますか?