Euler Project36

"Problem36"

処理時間:
python 4.118186(s)
pypy 1.056911(x)

#-*- coding:utf-8 -*
#Euler36
Dictionary=[]
Total=[]
max=1000000
def f(fore,back):
		back.reverse()
		back=''.join(back)
		if fore in back: return True
		else: return False


def reversed_number(x):
	number=str(x)
	#偶数
	if len(number) % 2==0:
		fore=number[:len(number)/2]
		back=list(number[len(number)/2:])
		return f(fore,back)
	#奇数
	else:
		fore=number[:len(number)/2]
		back=list(number[len(number)/2+1:])
		return f(fore,back)

if __name__=="__main__":
	for i in range(max):
		if reveresed_number(i)==True:
			Dictionary.append(i)
	for i in Dictionary:
		if reversed_number(format(i,'b'))==True:
			Total.append(i)
	print sum(Total)