0036. 双进制回文数
* * * *
拉格朗日计划
* * * *
双进制回文数

十进制数585的二进制表示是1001001001,在两种进制下它都是回文数。

求所有小于一百万、且在这两种进制下都是回文数的数之和。

注意,无论在哪种进制下数的表示都不含前导零,例如010就不是一种合法的表示形式。

本题难度:



解答

先找出一百万以内十进制下的回文数,再检查它们在二进制下是否也是回文数,结果是$872187$。

print sum(s for s in range(1000000) if str(s)==str(s)[::-1] and format(s,"b")==format(s,"b")[::-1])