From 636148d401d4dd29cef72a4ab1017d802aa84afa Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Fri, 5 May 2017 17:44:27 +0100 Subject: [PATCH] Done puzzle 63 --- euler63.ipynb | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) create mode 100644 euler63.ipynb diff --git a/euler63.ipynb b/euler63.ipynb new file mode 100644 index 0000000..e986ea4 --- /dev/null +++ b/euler63.ipynb @@ -0,0 +1,155 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The 5-digit number, $16807=7^5$, is also a fifth power. Similarly, the 9-digit number, $134217728=8^9$, is a ninth power.\n", + "\n", + "How many _n_-digit positive integers exist which are also an *n*th power?\n", + "\n", + "$(\\log_{10} x) + 1 = n ; x = y ^ n$\n", + "\n", + "$log_y x = n = (\\log_{10} x) + 1$\n", + "\n", + "Possibly valid if $ log_y x \\le n = (\\log_{10} x) + 1$\n", + "\n", + "Possibly valid if $\\log_{10} y^n \\le n + 1$\n", + "\n", + "$n \\log_{10} y \\le n + 1$\n", + "\n", + "$\\log_{10} y \\le \\frac{n + 1}{n}$\n", + "\n", + "$y < 10$ as $10^n$ has $n+1$ digits.\n", + "\n", + "$y^n$ has $\\left \\lfloor \\log_{10} y^n \\right \\rfloor + 1 = \\left \\lfloor n \\log_{10} y \\right \\rfloor + 1$ digits.\n", + "\n", + "$\\left \\lfloor n \\log_{10} y \\right \\rfloor + 1 = n$\n", + "\n", + "$n \\left \\lfloor \\log_{10} y \\right \\rfloor = n - 1$\n", + "\n", + "$\\left \\lfloor \\log_{10} y \\right \\rfloor = \\frac{n - 1}{n}$\n", + "\n", + "$\\left \\lfloor \\log_{10} y \\right \\rfloor = 1 - \\frac{1}{n}$\n", + "\n", + "$\\frac{1}{n} = 1 - \\left \\lfloor \\log_{10} y \\right \\rfloor$\n", + "\n", + "${n} = \\frac{1}{1 - \\left \\lfloor \\log_{10} y \\right \\rfloor}$\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "$ n \\log_{10} y + 1 < n$\n", + "\n", + "$n \\log_{10} y< n - 1$\n", + "\n", + "$ \\log_{10} y < \\frac{n - 1}{n}$\n", + "\n", + "$\\log_{10} y < 1 - \\frac{1}{n}$\n", + "\n", + "$\\frac{1}{n} > 1 - \\log_{10} y $\n", + "\n", + "${n} < \\frac{1}{1 - \\log_{10} y}$\n", + "\n", + "${n} = \\left \\lfloor \\frac{1}{1 - \\log_{10} y} \\right \\rfloor$\n", + "\n", + "| y | n | $y^n$ |\n", + "|-----|\n", + "| 1 | 1 | 1 |\n", + "| 2 | 1 | 2 |\n", + "| 3 | 1 | 3 |\n", + "| 4 | 1 | 4 |\n", + "| 4 | 2 | 16 |\n", + "| 5 | 1 | 5 |\n", + "| 5 | 2 | 25 |\n", + "| 5 | 3 | 125 |\n", + "| 6 | 1 | 6 |\n", + "| 6 | 2 | 36 |\n", + "| 6 | 3 | 216 |\n", + "| 6 | 4 | 1296 |\n" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1, 1\n", + "2, 1\n", + "3, 1\n", + "4, 2\n", + "5, 3\n", + "6, 4\n", + "7, 6\n", + "8, 10\n", + "9, 21\n" + ] + }, + { + "data": { + "text/plain": [ + "1..9" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(1..9).each do |y|\n", + " puts \"#{y}, #{(1 / (1 - Math.log(y, 10))).floor}\"\n", + "end" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "49" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "(1..9).map {|y| (1 / (1 - Math.log(y, 10))).floor}.sum" + ] + }, + { + "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 +} -- 2.34.1