대칭수(palindrome)인 585는 2진수로 나타내도 10010010012가 되어 여전히 대칭수입니다.
10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합을 구하세요.
(주의: 첫번째 자리가 0이면 대칭수가 아님)
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 | def palindrome(n): n = str(n) length = len(n) i = 0 while length > i: if n[i] == n[length-1]: i +=1 length -=1 else: return False return True arrays = range(1, 1000001) result = 0 for element in arrays: if palindrome(element): if palindrome(str(bin(element))[2:]): #print str(bin(element))[2:], element result += element print "the answer :", result | cs |
C:\Users\soicem\Desktop\연습용 폴더>python test.py
the answer : 872187
가볍게 ~ 근데 1의 자릿수를 대칭수라고 할 수 있나?
'* Computer Science > Project Euler' 카테고리의 다른 글
project euler 39. problem (0) | 2016.09.20 |
---|---|
project euler 38. problem (0) | 2016.09.06 |
project euler 목적. (0) | 2016.08.30 |
project euler 34. problem (0) | 2016.08.29 |
project euler 33. problem (0) | 2016.08.26 |