{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "load 'array-numbers.rb'" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ ":lychrel?" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class Integer\n", " # Split a number into a list of digits\n", " def palindrome?\n", " self.to_s == self.to_s.reverse\n", " end\n", " \n", " def lychrel_step\n", " self + self.to_s.reverse.to_i\n", " end\n", " \n", " def lychrel?(limit=50)\n", " if lychrel_step.palindrome?\n", " false\n", " elsif limit == 0\n", " true\n", " else\n", " lychrel_step.lychrel?(limit-1)\n", " end\n", " end\n", "end " ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "7.palindrome?" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "717.palindrome?" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "121" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "47.lychrel_step" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1292" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "349.lychrel_step" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "7337" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "349.lychrel_step.lychrel_step.lychrel_step" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "false" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "349.lychrel?" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "196.lychrel?" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "true" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "4994.lychrel?" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "249" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(10...10**4).select {|n| n.lychrel?}.length" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Ruby 2.4.0", "language": "ruby", "name": "ruby" }, "language_info": { "file_extension": ".rb", "mimetype": "application/x-ruby", "name": "ruby", "version": "2.4.0" } }, "nbformat": 4, "nbformat_minor": 2 }