{ "metadata": { "name": "", "signature": "sha256:adff976ba2e90f02a574c5338362b13e82775ed8591a863fa5f3754ae22fd64b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 \u00d7 99.\n", "\n", "Find the largest palindrome made from the product of two 3-digit numbers." ] }, { "cell_type": "code", "collapsed": false, "input": [ "def product_gen(num):\n", " x = num\n", " y = num - 1\n", " \n", " while num < 2:\n", " yield x * y" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "product_gen(2)" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 2, "text": [ "<generator object product_gen at 0x0000000003F5C1B0>" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "num1 = 999\n", "num2 = 999\n", "prod = None\n", "prod_str = None\n", "reverse_str = None\n", "is_palindrome = False\n", "maxpal = 0\n", "\n", "while num1 > 2 and is_palindrome == False:\n", " prod = num1 * num2\n", " prod_str = str(prod)\n", " reverse_str = prod_str[::-1]\n", " \n", " if prod_str == reverse_str:\n", " is_palindrome = True\n", " \n", " if num2 == 99:\n", " num2 = 999\n", " num1 -= 1\n", " \n", " else:\n", " num2 -= 1 \n", "print prod" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "580085\n" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "def is_palindrome(num):\n", " return int(str(num)[::-1]) == num" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "high_pal = 0\n", "prod = None\n", "\n", "for x in range(999, 99, -1):\n", " for y in range(x, 99, -1):\n", " prod = x * y\n", " if is_palindrome(prod) and prod > high_pal:\n", " high_pal = prod\n", " \n", "print high_pal" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "906609\n" ] } ], "prompt_number": 30 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }