From 517e297fc12d4ea0555a3f3329c72702a06153e5 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Sat, 13 Mar 2010 16:45:27 +0100 Subject: project euler solution for #36 --- src/projecteuler/036.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/projecteuler/036.py diff --git a/src/projecteuler/036.py b/src/projecteuler/036.py new file mode 100644 index 0000000..bf800da --- /dev/null +++ b/src/projecteuler/036.py @@ -0,0 +1,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 + -- cgit v1.2.3