{ "metadata": { "language": "fsharp", "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###The hyperexponentiation of a number\n", "####Problem 188\n", "\n", "The hyperexponentiation or tetration of a number $a$ by a positive integer $b$, denoted by $a\u2191\u2191b$ or $^ba$, is recursively defined by:\n", "\n", "$$a\u2191\u21911 = a,$$\n", "$$a\u2191\u2191(k+1) = a^{(a\u2191\u2191k)}.$$\n", "\n", "Thus we have e.g. $3\u2191\u21912 = 3^3 = 27$, hence $3\u2191\u21913 = 3^{27} = 7625597484987$ and $3\u2191\u21914$ is roughly $10^{3.6383346400240996*10^{12}}$.\n", "\n", "Find the last $8$ digits of $1777\u2191\u21911855$." ] }, { "cell_type": "code", "collapsed": false, "input": [ "open Euler\n", "\n", "let p188() =\n", " let rec loop (n:bigint) k = \n", " match k with\n", " |1 -> n\n", " |_ -> bigint.ModPow(n,loop n (k-1),100000000I)\n", " loop 1777I 1855\n", "\n", "Euler.Timer(p188)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 1, "text": [ "val it : bigint * float = (95962097, 0.0109785)" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }