Created
July 3, 2017 22:08
-
-
Save mbarkhau/4bb53b21d7e357202aafb5dc4141b44b to your computer and use it in GitHub Desktop.
euler_hack_008.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 9, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "%reload_ext Cython\n", | |
| "# %%cython\n", | |
| "\n", | |
| "import io\n", | |
| "import re\n", | |
| "import csv\n", | |
| "import json\n", | |
| "import math\n", | |
| "import random\n", | |
| "import numbers\n", | |
| "import decimal\n", | |
| "import fractions\n", | |
| "import statistics\n", | |
| "import operator as op\n", | |
| "import itertools as it\n", | |
| "import functools as ft" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# Euler Hack #8 (2017-07-03)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Problem 3 - Largest prime factor\n", | |
| " \n", | |
| "The prime factors of 13195 are 5, 7, 13 and 29.\n", | |
| "\n", | |
| "What is the largest prime factor of the number 600851475143 ?" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "775146.0992245268" | |
| ] | |
| }, | |
| "execution_count": 14, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "math.sqrt(600851475143)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# https://stackoverflow.com/a/3941967/62997\n", | |
| "def primes(limit):\n", | |
| " a = [True] * limit # Initialize the primality list\n", | |
| " a[0] = a[1] = False\n", | |
| "\n", | |
| " for i, isprime in enumerate(a):\n", | |
| " if isprime:\n", | |
| " yield i\n", | |
| " for n in range(i*i, limit, i): # Mark factors non-prime\n", | |
| " a[n] = False" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 15, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def find_largest_prime(num):\n", | |
| " prime_list = list(primes(int(math.sqrt(num)) + 1))\n", | |
| " for prime in reversed(prime_list):\n", | |
| " if num % prime == 0:\n", | |
| " return prime" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "29" | |
| ] | |
| }, | |
| "execution_count": 16, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "find_largest_prime(13195)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "6857" | |
| ] | |
| }, | |
| "execution_count": 17, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "find_largest_prime(600851475143)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Problem 71 - Ordered fractions\n", | |
| "\n", | |
| "Consider the fraction, n/d, where n and d are positive integers. If n<d and HCF(n,d)=1, it is called a reduced proper fraction.\n", | |
| "\n", | |
| "If we list the set of reduced proper fractions for d ≤ 8 in ascending order of size, we get:\n", | |
| "\n", | |
| "1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, **2/5**, 3/7, 1/2, 4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8\n", | |
| "\n", | |
| "It can be seen that 2/5 is the fraction immediately to the left of 3/7.\n", | |
| "\n", | |
| "By listing the set of reduced proper fractions for d ≤ 1,000,000 in ascending order of size, find the numerator of the fraction immediately to the left of 3/7." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "0.42857142857142855" | |
| ] | |
| }, | |
| "execution_count": 20, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "3/7" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "0.428571" | |
| ] | |
| }, | |
| "execution_count": 48, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "428571/1000000" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 75, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "def find_closest(x, max_d):\n", | |
| " d = max_d\n", | |
| " n = round(x * d)\n", | |
| " closest_n = n\n", | |
| " closest_d = d\n", | |
| " closest = n / d\n", | |
| " while n > 0 and d > 0:\n", | |
| " y = n / d\n", | |
| " if closest < y < x:\n", | |
| " closest_n = n\n", | |
| " closest_d = d\n", | |
| " closest = y\n", | |
| " # print(f\"current {n} / {d} = {y}\")\n", | |
| " # print(f\"closest {closest_n} / {closest_d} = {closest}\")\n", | |
| " if y > x:\n", | |
| " n -= 1\n", | |
| " else:\n", | |
| " d -= 1\n", | |
| " \n", | |
| " return closest_n, closest_d" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 80, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "(428570, 999997)" | |
| ] | |
| }, | |
| "execution_count": 80, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "find_closest(3/7, max_d=1000000)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Problem 65 - Convergents of e\n", | |
| "\n", | |
| "Too much text. https://projecteuler.net/problem=65" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 85, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "def convergent(seq, nth):\n", | |
| " c = 0\n", | |
| " while nth > 0:\n", | |
| " c = fractions.Fraction(1, c + seq[nth])\n", | |
| " nth -= 1\n", | |
| " return seq[0] + c" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 86, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "Fraction(17, 12)" | |
| ] | |
| }, | |
| "execution_count": 86, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "sqrt_2_seq = [1] + [2] * 100\n", | |
| "convergent(seq=sqrt_2_seq, nth=3)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 97, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "272" | |
| ] | |
| }, | |
| "execution_count": 97, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "e_seq = [2]\n", | |
| "for k in range(1, 100):\n", | |
| " e_seq += [1, 2 * k, 1]\n", | |
| "c = convergent(seq=e_seq, nth=99)\n", | |
| "sum(map(int, str(c.numerator)))\n", | |
| "# 1457/536" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## Problem 60 - Prime pair sets\n", | |
| "\n", | |
| "The primes 3, 7, 109, and 673, are quite remarkable. By taking any two primes and concatenating them in any order the result will always be prime. For example, taking 7 and 109, both 7109 and 1097 are prime. The sum of these four primes, 792, represents the lowest sum for a set of four primes with this property.\n", | |
| "\n", | |
| "Find the lowest sum for a set of five primes for which any two primes concatenate to produce another prime." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 193, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "prime_list = list(map(str, primes(100_000_000)))\n", | |
| "prime_set = set(prime_list)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 199, | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "search_prime_list = prime_list[:10_000]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 200, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "def find_pair_set(n, prev_pairs=[], min_i=0):\n", | |
| " if n == 0:\n", | |
| " return prev_pairs\n", | |
| " if n == 1:\n", | |
| " print(\"-->\", prev_pairs)\n", | |
| " \n", | |
| " for i, x in enumerate(search_prime_list[min_i:]):\n", | |
| " is_all_pairs = all(\n", | |
| " (x + y in prime_set and y + x in prime_set)\n", | |
| " for y in prev_pairs\n", | |
| " )\n", | |
| " if is_all_pairs:\n", | |
| " next_pairs = prev_pairs + [x]\n", | |
| " pair_set = find_pair_set(n - 1, next_pairs, min_i + i)\n", | |
| " if pair_set is not None:\n", | |
| " return pair_set\n", | |
| " return None" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 214, | |
| "metadata": { | |
| "scrolled": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "%%cython\n", | |
| "\n", | |
| "def cy_find_pair_set(\n", | |
| " int n,\n", | |
| " set prime_set,\n", | |
| " list search_prime_list,\n", | |
| " tuple prev_pairs=(),\n", | |
| " int min_i=0):\n", | |
| " if n == 0:\n", | |
| " return prev_pairs\n", | |
| " if n == 1:\n", | |
| " print(\"-->\", prev_pairs)\n", | |
| " \n", | |
| " cdef int i\n", | |
| " cdef str x\n", | |
| " cdef tuple next_pairs, pair_set\n", | |
| " # cdef bool is_all_pairs, is_all_x_y_prime, is_all_y_x_prime\n", | |
| " cdef list _search_primes = search_prime_list[min_i:]\n", | |
| " \n", | |
| " for i, x in enumerate(_search_primes):\n", | |
| " is_all_x_y_prime = all((x + y in prime_set) for y in prev_pairs)\n", | |
| " if not is_all_x_y_prime:\n", | |
| " continue\n", | |
| " is_all_y_x_prime = all((y + x in prime_set) for y in prev_pairs)\n", | |
| " if not is_all_y_x_prime:\n", | |
| " continue\n", | |
| " \n", | |
| " next_pairs = prev_pairs + (x,)\n", | |
| " pair_set = cy_find_pair_set(\n", | |
| " n - 1, prime_set, search_prime_list, next_pairs, min_i + i)\n", | |
| " if pair_set is not None:\n", | |
| " return pair_set\n", | |
| " return None" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 216, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "--> ('3', '7', '109', '673')\n", | |
| "--> ('3', '7', '109', '29059')\n", | |
| "--> ('3', '7', '109', '79693')\n", | |
| "--> ('3', '7', '109', '91159')\n", | |
| "--> ('3', '7', '109', '93187')\n", | |
| "--> ('3', '7', '229', '76819')\n", | |
| "--> ('3', '7', '541', '4159')\n", | |
| "--> ('3', '7', '541', '74317')\n", | |
| "--> ('3', '7', '541', '83023')\n", | |
| "--> ('3', '7', '673', '22921')\n", | |
| "--> ('3', '7', '673', '65293')\n", | |
| "--> ('3', '7', '823', '27823')\n", | |
| "--> ('3', '11', '701', '8747')\n", | |
| "--> ('3', '11', '701', '53777')\n", | |
| "--> ('3', '11', '2069', '2297')\n", | |
| "--> ('3', '11', '2069', '8219')\n", | |
| "--> ('3', '11', '2069', '8747')\n", | |
| "--> ('3', '17', '449', '2069')\n", | |
| "--> ('3', '17', '449', '6353')\n", | |
| "--> ('3', '17', '449', '6599')\n", | |
| "--> ('3', '17', '2069', '2297')\n", | |
| "--> ('3', '31', '1237', '6571')\n", | |
| "--> ('3', '31', '7591', '8431')\n", | |
| "--> ('3', '37', '67', '2377')\n", | |
| "--> ('3', '37', '67', '5923')\n", | |
| "--> ('3', '37', '1237', '8713')\n", | |
| "--> ('3', '37', '1699', '8713')\n", | |
| "--> ('3', '37', '2377', '4159')\n", | |
| "--> ('3', '37', '4729', '7963')\n", | |
| "--> ('3', '37', '5923', '7963')\n", | |
| "--> ('3', '73', '607', '18523')\n", | |
| "--> ('3', '73', '6793', '7159')\n", | |
| "--> ('3', '191', '2069', '8747')\n", | |
| "--> ('3', '229', '613', '49177')\n", | |
| "--> ('3', '331', '739', '8431')\n", | |
| "--> ('3', '373', '823', '15559')\n", | |
| "--> ('3', '467', '617', '4253')\n", | |
| "--> ('3', '467', '617', '87623')\n", | |
| "--> ('3', '1237', '6571', '8713')\n", | |
| "--> ('3', '1699', '6571', '8713')\n", | |
| "--> ('3', '2503', '5281', '5869')\n", | |
| "--> ('3', '3923', '4919', '8783')\n", | |
| "--> ('3', '4729', '7963', '9181')\n", | |
| "--> ('7', '19', '97', '3727')\n", | |
| "--> ('7', '19', '97', '4507')\n", | |
| "--> ('7', '19', '433', '71143')\n", | |
| "--> ('7', '19', '433', '82219')\n", | |
| "--> ('7', '19', '937', '36871')\n", | |
| "--> ('7', '19', '1249', '3727')\n", | |
| "--> ('7', '19', '3727', '5659')\n", | |
| "--> ('7', '61', '487', '8941')\n", | |
| "--> ('7', '61', '487', '63601')\n", | |
| "--> ('7', '61', '1693', '3181')\n", | |
| "--> ('7', '109', '673', '20887')\n", | |
| "--> ('7', '109', '673', '34303')\n", | |
| "--> ('7', '109', '883', '13807')\n", | |
| "--> ('7', '127', '6949', '7723')\n", | |
| "--> ('7', '229', '433', '18433')\n", | |
| "--> ('7', '229', '433', '28729')\n", | |
| "--> ('7', '433', '1471', '3613')\n", | |
| "--> ('7', '433', '3613', '9613')\n", | |
| "--> ('7', '487', '757', '51061')\n", | |
| "--> ('7', '487', '757', '88651')\n", | |
| "--> ('7', '541', '2467', '8167')\n", | |
| "--> ('7', '547', '853', '27241')\n", | |
| "--> ('7', '757', '829', '92593')\n", | |
| "--> ('7', '829', '2671', '3361')\n", | |
| "--> ('7', '853', '2269', '8779')\n", | |
| "--> ('7', '853', '8017', '8779')\n", | |
| "--> ('7', '1237', '1549', '3019')\n", | |
| "--> ('7', '1249', '3727', '6949')\n", | |
| "--> ('7', '1249', '4441', '6949')\n", | |
| "--> ('7', '2089', '2953', '3181')\n", | |
| "--> ('7', '2089', '3181', '4219')\n", | |
| "--> ('7', '2269', '3613', '5821')\n", | |
| "--> ('7', '3019', '7351', '9613')\n", | |
| "--> ('11', '23', '743', '1871')\n", | |
| "--> ('11', '23', '1871', '8171')\n", | |
| "--> ('11', '23', '1871', '8681')\n", | |
| "--> ('11', '23', '3083', '8747')\n", | |
| "--> ('11', '23', '5849', '8681')\n", | |
| "--> ('11', '23', '6329', '7331')\n", | |
| "--> ('11', '239', '1049', '1847')\n", | |
| "--> ('11', '239', '1091', '1847')\n", | |
| "--> ('11', '239', '3467', '5807')\n", | |
| "--> ('11', '251', '941', '42863')\n", | |
| "--> ('11', '353', '4967', '5849')\n", | |
| "--> ('11', '353', '4967', '8219')\n", | |
| "--> ('11', '353', '6791', '8831')\n", | |
| "--> ('11', '701', '7541', '8747')\n", | |
| "--> ('11', '1103', '5807', '6329')\n", | |
| "--> ('11', '2297', '4967', '7127')\n", | |
| "--> ('11', '4013', '4643', '5153')\n", | |
| "--> ('11', '4547', '6791', '8831')\n", | |
| "--> ('11', '4643', '5153', '5849')\n", | |
| "--> ('13', '19', '577', '28219')\n", | |
| "--> ('13', '19', '709', '20173')\n", | |
| "--> ('13', '19', '5077', '6043')\n", | |
| "--> ('13', '19', '6991', '9697')\n", | |
| "--> ('13', '61', '331', '19543')\n", | |
| "--> ('13', '61', '2383', '5431')\n", | |
| "--> ('13', '103', '997', '79423')\n", | |
| "--> ('13', '127', '6733', '7993')\n", | |
| "--> ('13', '331', '577', '83203')\n", | |
| "--> ('13', '1543', '3967', '8053')\n", | |
| "--> ('13', '2383', '5431', '8599')\n", | |
| "--> ('13', '2383', '6733', '8599')\n", | |
| "--> ('13', '2851', '4951', '9697')\n", | |
| "--> ('13', '4327', '4591', '9883')\n", | |
| "--> ('13', '4363', '8461', '9091')\n", | |
| "--> ('13', '4951', '6343', '9697')\n", | |
| "--> ('13', '5197', '5701', '6733')\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "('13', '5197', '5701', '6733', '8389')" | |
| ] | |
| }, | |
| "execution_count": 216, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "cy_find_pair_set(5, prime_set, search_prime_list)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 201, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "--> ['3', '7', '109', '673']\n", | |
| "--> ['3', '7', '109', '29059']\n", | |
| "--> ['3', '7', '109', '79693']\n", | |
| "--> ['3', '7', '109', '91159']\n", | |
| "--> ['3', '7', '109', '93187']\n", | |
| "--> ['3', '7', '229', '76819']\n", | |
| "--> ['3', '7', '541', '4159']\n", | |
| "--> ['3', '7', '541', '74317']\n", | |
| "--> ['3', '7', '541', '83023']\n", | |
| "--> ['3', '7', '673', '22921']\n", | |
| "--> ['3', '7', '673', '65293']\n", | |
| "--> ['3', '7', '823', '27823']\n", | |
| "--> ['3', '11', '701', '8747']\n", | |
| "--> ['3', '11', '701', '53777']\n", | |
| "--> ['3', '11', '2069', '2297']\n", | |
| "--> ['3', '11', '2069', '8219']\n", | |
| "--> ['3', '11', '2069', '8747']\n", | |
| "--> ['3', '17', '449', '2069']\n", | |
| "--> ['3', '17', '449', '6353']\n", | |
| "--> ['3', '17', '449', '6599']\n", | |
| "--> ['3', '17', '2069', '2297']\n", | |
| "--> ['3', '31', '1237', '6571']\n", | |
| "--> ['3', '31', '7591', '8431']\n", | |
| "--> ['3', '37', '67', '2377']\n", | |
| "--> ['3', '37', '67', '5923']\n", | |
| "--> ['3', '37', '1237', '8713']\n", | |
| "--> ['3', '37', '1699', '8713']\n", | |
| "--> ['3', '37', '2377', '4159']\n", | |
| "--> ['3', '37', '4729', '7963']\n", | |
| "--> ['3', '37', '5923', '7963']\n", | |
| "--> ['3', '73', '607', '18523']\n", | |
| "--> ['3', '73', '6793', '7159']\n", | |
| "--> ['3', '191', '2069', '8747']\n", | |
| "--> ['3', '229', '613', '49177']\n", | |
| "--> ['3', '331', '739', '8431']\n", | |
| "--> ['3', '373', '823', '15559']\n", | |
| "--> ['3', '467', '617', '4253']\n", | |
| "--> ['3', '467', '617', '87623']\n", | |
| "--> ['3', '1237', '6571', '8713']\n", | |
| "--> ['3', '1699', '6571', '8713']\n", | |
| "--> ['3', '2503', '5281', '5869']\n", | |
| "--> ['3', '3923', '4919', '8783']\n", | |
| "--> ['3', '4729', '7963', '9181']\n", | |
| "--> ['7', '19', '97', '3727']\n", | |
| "--> ['7', '19', '97', '4507']\n", | |
| "--> ['7', '19', '433', '71143']\n", | |
| "--> ['7', '19', '433', '82219']\n", | |
| "--> ['7', '19', '937', '36871']\n", | |
| "--> ['7', '19', '1249', '3727']\n", | |
| "--> ['7', '19', '3727', '5659']\n", | |
| "--> ['7', '61', '487', '8941']\n", | |
| "--> ['7', '61', '487', '63601']\n", | |
| "--> ['7', '61', '1693', '3181']\n", | |
| "--> ['7', '109', '673', '20887']\n", | |
| "--> ['7', '109', '673', '34303']\n", | |
| "--> ['7', '109', '883', '13807']\n", | |
| "--> ['7', '127', '6949', '7723']\n", | |
| "--> ['7', '229', '433', '18433']\n", | |
| "--> ['7', '229', '433', '28729']\n", | |
| "--> ['7', '433', '1471', '3613']\n", | |
| "--> ['7', '433', '3613', '9613']\n", | |
| "--> ['7', '487', '757', '51061']\n", | |
| "--> ['7', '487', '757', '88651']\n", | |
| "--> ['7', '541', '2467', '8167']\n", | |
| "--> ['7', '547', '853', '27241']\n", | |
| "--> ['7', '757', '829', '92593']\n", | |
| "--> ['7', '829', '2671', '3361']\n", | |
| "--> ['7', '853', '2269', '8779']\n", | |
| "--> ['7', '853', '8017', '8779']\n", | |
| "--> ['7', '1237', '1549', '3019']\n", | |
| "--> ['7', '1249', '3727', '6949']\n", | |
| "--> ['7', '1249', '4441', '6949']\n", | |
| "--> ['7', '2089', '2953', '3181']\n", | |
| "--> ['7', '2089', '3181', '4219']\n", | |
| "--> ['7', '2269', '3613', '5821']\n", | |
| "--> ['7', '3019', '7351', '9613']\n", | |
| "--> ['11', '23', '743', '1871']\n", | |
| "--> ['11', '23', '1871', '8171']\n", | |
| "--> ['11', '23', '1871', '8681']\n", | |
| "--> ['11', '23', '3083', '8747']\n", | |
| "--> ['11', '23', '5849', '8681']\n", | |
| "--> ['11', '23', '6329', '7331']\n", | |
| "--> ['11', '239', '1049', '1847']\n", | |
| "--> ['11', '239', '1091', '1847']\n", | |
| "--> ['11', '239', '3467', '5807']\n", | |
| "--> ['11', '251', '941', '42863']\n", | |
| "--> ['11', '353', '4967', '5849']\n", | |
| "--> ['11', '353', '4967', '8219']\n", | |
| "--> ['11', '353', '6791', '8831']\n", | |
| "--> ['11', '701', '7541', '8747']\n", | |
| "--> ['11', '1103', '5807', '6329']\n", | |
| "--> ['11', '2297', '4967', '7127']\n", | |
| "--> ['11', '4013', '4643', '5153']\n", | |
| "--> ['11', '4547', '6791', '8831']\n", | |
| "--> ['11', '4643', '5153', '5849']\n", | |
| "--> ['13', '19', '577', '28219']\n", | |
| "--> ['13', '19', '709', '20173']\n", | |
| "--> ['13', '19', '5077', '6043']\n", | |
| "--> ['13', '19', '6991', '9697']\n", | |
| "--> ['13', '61', '331', '19543']\n", | |
| "--> ['13', '61', '2383', '5431']\n", | |
| "--> ['13', '103', '997', '79423']\n", | |
| "--> ['13', '127', '6733', '7993']\n", | |
| "--> ['13', '331', '577', '83203']\n", | |
| "--> ['13', '1543', '3967', '8053']\n", | |
| "--> ['13', '2383', '5431', '8599']\n", | |
| "--> ['13', '2383', '6733', '8599']\n", | |
| "--> ['13', '2851', '4951', '9697']\n", | |
| "--> ['13', '4327', '4591', '9883']\n", | |
| "--> ['13', '4363', '8461', '9091']\n", | |
| "--> ['13', '4951', '6343', '9697']\n", | |
| "--> ['13', '5197', '5701', '6733']\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "['13', '5197', '5701', '6733', '8389']" | |
| ] | |
| }, | |
| "execution_count": 201, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "find_pair_set(n=5)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 213, | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "26033" | |
| ] | |
| }, | |
| "execution_count": 213, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "sum(map(int, ['13', '5197', '5701', '6733', '8389']))" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "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.6.0" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 2 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment