summaryrefslogtreecommitdiff
path: root/036.py
blob: bf800da056d2a43dba6b4b36656fc47a790f0406 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

binary = [ 2**x for x in range(20) ][::-1]

def palindromic_decimal(n):
	if n == int(str(n)[::-1]):
		return True
	return False


def dec2bin(n):
	res = ""
	for i in binary:
		if n - i > 0 or n == i:
			res += "1"
			n -= i
		else:
			if len(res) > 0: # do not add leading 0s
				res += "0"
	return res

def bin2dec(n):
	res = 0
	for i in range(1, len(n)+1):
		if n[-i] == "1":
			res += binary[-i]
	return res

def palindromic_binary(n):
	if n == bin2dec(dec2bin(n)[::-1]):
		return True
	return False

sum = 0

for n in xrange(1000000):
	if palindromic_decimal(n) and palindromic_binary(n):
		sum += n

print sum