Done puzzle 64
[project-euler.git] / euler36.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "collapsed": false
8 },
9 "outputs": [
10 {
11 "data": {
12 "text/plain": [
13 ":palindrome?"
14 ]
15 },
16 "execution_count": 1,
17 "metadata": {},
18 "output_type": "execute_result"
19 }
20 ],
21 "source": [
22 "class String\n",
23 " def palindrome?\n",
24 " self.reverse == self\n",
25 " end\n",
26 "end"
27 ]
28 },
29 {
30 "cell_type": "code",
31 "execution_count": 2,
32 "metadata": {
33 "collapsed": false
34 },
35 "outputs": [
36 {
37 "data": {
38 "text/plain": [
39 "false"
40 ]
41 },
42 "execution_count": 2,
43 "metadata": {},
44 "output_type": "execute_result"
45 }
46 ],
47 "source": [
48 "\"happy\".palindrome?"
49 ]
50 },
51 {
52 "cell_type": "code",
53 "execution_count": 3,
54 "metadata": {
55 "collapsed": false
56 },
57 "outputs": [
58 {
59 "data": {
60 "text/plain": [
61 "true"
62 ]
63 },
64 "execution_count": 3,
65 "metadata": {},
66 "output_type": "execute_result"
67 }
68 ],
69 "source": [
70 "\"abbacabba\".palindrome?"
71 ]
72 },
73 {
74 "cell_type": "code",
75 "execution_count": 4,
76 "metadata": {
77 "collapsed": false
78 },
79 "outputs": [
80 {
81 "data": {
82 "text/plain": [
83 ":to_digits"
84 ]
85 },
86 "execution_count": 4,
87 "metadata": {},
88 "output_type": "execute_result"
89 }
90 ],
91 "source": [
92 "class Integer\n",
93 " def to_digits(base=10)\n",
94 " self.to_s(base).split('').map {|d| d.to_i}\n",
95 " end\n",
96 "end "
97 ]
98 },
99 {
100 "cell_type": "code",
101 "execution_count": 6,
102 "metadata": {
103 "collapsed": false
104 },
105 "outputs": [
106 {
107 "data": {
108 "text/plain": [
109 "[1, 0, 0, 0, 1]"
110 ]
111 },
112 "execution_count": 6,
113 "metadata": {},
114 "output_type": "execute_result"
115 }
116 ],
117 "source": [
118 "17.to_digits(2)"
119 ]
120 },
121 {
122 "cell_type": "code",
123 "execution_count": 7,
124 "metadata": {
125 "collapsed": false
126 },
127 "outputs": [
128 {
129 "data": {
130 "text/plain": [
131 "[0, 1, 3, 5, 7, 9, 33, 99, 313, 585, 717]"
132 ]
133 },
134 "execution_count": 7,
135 "metadata": {},
136 "output_type": "execute_result"
137 }
138 ],
139 "source": [
140 "(0..10**3).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}"
141 ]
142 },
143 {
144 "cell_type": "code",
145 "execution_count": 8,
146 "metadata": {
147 "collapsed": false
148 },
149 "outputs": [
150 {
151 "data": {
152 "text/plain": [
153 "[0, 1, 3, 5, 7, 9, 33, 99, 313, 585, 717, 7447, 9009, 15351, 32223, 39993, 53235, 53835, 73737, 585585]"
154 ]
155 },
156 "execution_count": 8,
157 "metadata": {},
158 "output_type": "execute_result"
159 }
160 ],
161 "source": [
162 "(0..10**6).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}"
163 ]
164 },
165 {
166 "cell_type": "code",
167 "execution_count": 9,
168 "metadata": {
169 "collapsed": false
170 },
171 "outputs": [
172 {
173 "data": {
174 "text/plain": [
175 "872187"
176 ]
177 },
178 "execution_count": 9,
179 "metadata": {},
180 "output_type": "execute_result"
181 }
182 ],
183 "source": [
184 "(0..10**6).select {|i| i.to_s.palindrome? && i.to_s(2).palindrome?}.sum"
185 ]
186 },
187 {
188 "cell_type": "code",
189 "execution_count": null,
190 "metadata": {
191 "collapsed": true
192 },
193 "outputs": [],
194 "source": []
195 }
196 ],
197 "metadata": {
198 "kernelspec": {
199 "display_name": "Ruby 2.4.0",
200 "language": "ruby",
201 "name": "ruby"
202 },
203 "language_info": {
204 "file_extension": ".rb",
205 "mimetype": "application/x-ruby",
206 "name": "ruby",
207 "version": "2.4.0"
208 }
209 },
210 "nbformat": 4,
211 "nbformat_minor": 0
212 }