{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Euler Problem 31\n", "\n", "In England the currency is made up of pound, £, and pence, p, and there are eight coins in general circulation:\n", "\n", "1p, 2p, 5p, 10p, 20p, 50p, £1 (100p) and £2 (200p).\n", "\n", "It is possible to make £2 in the following way:\n", "\n", "1×£1 + 1×50p + 2×20p + 1×5p + 1×2p + 3×1p\n", "\n", "How many different ways can £2 be made using any number of coins?" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Let's do it non-recursive." ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "200\n", "195\n", "190\n", "185\n", "180\n", "175\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "190\n", "185\n", "180\n", "175\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "180\n", "175\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "180\n", "175\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "170\n", "165\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "160\n", "155\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "150\n", "145\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "140\n", "135\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "130\n", "125\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "120\n", "115\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "110\n", "105\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "100\n", "95\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "90\n", "85\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "80\n", "75\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "70\n", "65\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "60\n", "55\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "50\n", "45\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "40\n", "35\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n", "30\n", "25\n", "20\n", "15\n", "10\n", "5\n", "20\n", "15\n", "10\n", "5\n", "10\n", "5\n" ] }, { "data": { "text/plain": [ "72161" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r = 200\n", "c = 0\n", "\n", "if r % 200 == 0:\n", " c += 1\n", "for p200 in range(r // 200):\n", " r200 = r - p200 * 200\n", " if r200 % 100 == 0:\n", " c += 1\n", " for p100 in range(r200 // 100):\n", " r100 = r200 - p100 * 100\n", " if r100 % 50 == 0:\n", " c += 1\n", " for p50 in range(r100 // 50):\n", " r50 = r100 - p50 * 50\n", " if r50 % 20 == 0:\n", " c += 1\n", " for p20 in range(r50 // 20):\n", " r20 = r50 - p20 * 20\n", " if r20 <= 0:\n", " break\n", " if r20 % 10 == 0:\n", " c += 1\n", " for p10 in range(r20 // 10):\n", " r10 = r20 - p10 * 10\n", " if r10 % 5 == 0:\n", " c += 1\n", " for p5 in range(r10 // 5):\n", " r5 = r10 - p5 * 5\n", "\n", " if r5 % 2 == 0:\n", " c += 1\n", " for p2 in range(r5 // 2):\n", " r2 = r5 - p2 * 2\n", " c += 1\n", "\n", "c" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1785\n" ] }, { "ename": "AssertionError", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[1;32massert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;36m73682\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 3\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0ms\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mAssertionError\u001b[0m: " ] } ], "source": [ "print(s)\n", "assert(s == 73682)\n", "print(s)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "completion_date": "Fri, 25 Aug 2017, 13:02", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" }, "tags": [ "recursion", "coins" ] }, "nbformat": 4, "nbformat_minor": 2 }