{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Des dates qui font des nombres premiers (suite) ?\n", "\n", "Ce petit [notebook Jupyter](https://www.jupyter.org/), écrit en [Python](https://www.python.org/), a pour but de résoudre la question suivante :\n", "\n", "> *\"Pour un jour fixé, en utilisant le jour le mois et les deux chiffres de l'année comme briques de base, et les opérations arithmétiques $+,\\times,-,\\mod,\\%$, quel est le plus grand nombre premier que l'on peut obtenir ?\"*\n", "\n", "Par exemple, en 2017, le 31 mai donne `31`, `5`, et `17`.\n", "\n", "- $31 \\times 5 \\times 17$ n'est évidemment pas premier,\n", "- $17 \\times (31 \\mod 5) = 17$ est premier.\n", "\n", "> Pour d'autres questions sur les dates et les nombres premiers, [ce premier notebook est aussi intéressant !](https://nbviewer.jupyter.org/github/Naereen/notebooks/blob/master/simus/Des_dates_qui_font_des_nombres_premiers.ipynb)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "## Une première solution, naïve\n", "- On va d'abord écrire (ou importer) une fonction pour tester si un entier est premier,\n", "- Puis on va écrire une fonction qui transforme une date en ses trois nombres,\n", "- Et une fonction qui essaie toutes les opérations possibles sur les trois nombres,\n", "- Et enfin une boucle sur les 365 (ou 366) jours de l'année suffira à afficher, pour chaque jour, le plus grand nombre premier obtenu." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tester la primalité, version tricheur\n", "[`sympy`](http://www.sympy.org/) propose une fonction [`sympy.isprime`](http://docs.sympy.org/latest/modules/ntheory.html#sympy.ntheory.primetest.isprime)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from sympy import isprime" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Elle marche très bien, et est très rapide !" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[True, True, True, True, False, True, True, True, True]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[isprime(i) for i in [2, 3, 5, 7, 10, 11, 13, 17, 2017]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour des nombres de 8 chiffres (c'est tout petit), elle est vraiment rapide :" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "63.6 ms ± 4.29 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)\n" ] } ], "source": [ "from numpy.random import randint\n", "%timeit sum([isprime(i) for i in randint(1e8, 1e9-1, 10**4)])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\implies$ $65 ~\\text{ms}$ pour 10000 nombres à tester, ça me semble assez rapide pour ce qu'on veut en faire !" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "----\n", "### Transformer une date en nombre\n", "On va utiliser le module [`datetime`](https://docs.python.org/3/library/datetime.html) de la bibliothèque standard :" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "from datetime import datetime" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "On va travailler avec l'année 2017 !\n" ] } ], "source": [ "today = datetime.today()\n", "YEAR = today.year\n", "print(\"On va travailler avec l'année\", YEAR, \"!\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "C'est ensuite facile de transformer une date en nombre, selon les deux formats.\n", "On utilise [le formatage avec `.format()`](https://pyformat.info/#datetime) (en Python 3) :" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def date_vers_nombre(date):\n", " day = int(\"{:%d}\".format(date))\n", " month = int(\"{:%m}\".format(date))\n", " year = int(\"{:%Y}\".format(date)[-2:])\n", " return day, month, year" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(12, 1, 17)\n" ] } ], "source": [ "date = datetime(YEAR, 1, 12)\n", "print(date_vers_nombre(date))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tester toutes les opérations possibles\n", "- On utilise la fonction [`itertools.permutations`](https://docs.python.org/3/library/itertools.html#itertools.permutation) pour obtenir les permutations des trois nombres $x,y,z$,\n", "- On applique les opérations dans l'ordre $f_1(f_2(x, y), z)$ et $f_1(x, f_2(y, z))$, ce qui suffit à couvrir tous les cas.\n", "- On utilise le module [`operator`](https://docs.python.org/3/library/operator.html) pour avoir des fonctions pour les opérations autorisées." ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from itertools import permutations\n", "from operator import mod, mul, add, pow, sub, floordiv\n", "\n", "operations = [mod, mul, add, sub, floordiv]" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def tous_les_resultats(nombres, ops=operations):\n", " assert len(nombres) == 3\n", " tous = []\n", " for (x, y, z) in permutations(nombres):\n", " # on a un ordre pour x, y, z\n", " for f1 in ops:\n", " for f2 in ops:\n", " tous.append(f1(f2(x, y), z))\n", " tous.append(f1(x, f2(y, z)))\n", " # on enlève les doublons ici\n", " return list(set(tous))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On peut la vérifier sur de petites entrées :" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[6]" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "[8, 9, 5, 6, 7]" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tous_les_resultats([1, 2, 3], [add])\n", "tous_les_resultats([1, 2, 3], [add, mul])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On voit que stocker juste l'entier résultat ne suffit pas, on aimerait garder trace de chaque façon de l'obtenir !" ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "collapsed": true }, "outputs": [], "source": [ "noms_operations = {\n", " mod: '%',\n", " mul: '*',\n", " add: '+',\n", " sub: '-',\n", " floordiv: '/',\n", "}" ] }, { "cell_type": "code", "execution_count": 72, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def tous_les_resultats_2(nombres, ops=operations):\n", " assert len(nombres) == 3\n", " tous = {}\n", " for (x, y, z) in permutations(nombres):\n", " # on a un ordre pour x, y, z\n", " for f1 in ops:\n", " for f2 in ops:\n", " n1 = f1(f2(x, y), z)\n", " s1 = \"{}({}({}, {}), {})\".format(noms_operations[f1], noms_operations[f2], x, y, z)\n", " tous[s1] = n1\n", " n2 = f1(x, f2(y, z))\n", " s2 = \"{}({}, {}({}, {}))\".format(noms_operations[f1], x, noms_operations[f2], y, z)\n", " tous[s2] = n2\n", " return tous" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'+(+(1, 2), 3)': 6,\n", " '+(+(1, 3), 2)': 6,\n", " '+(+(2, 1), 3)': 6,\n", " '+(+(2, 3), 1)': 6,\n", " '+(+(3, 1), 2)': 6,\n", " '+(+(3, 2), 1)': 6,\n", " '+(1, +(2, 3))': 6,\n", " '+(1, +(3, 2))': 6,\n", " '+(2, +(1, 3))': 6,\n", " '+(2, +(3, 1))': 6,\n", " '+(3, +(1, 2))': 6,\n", " '+(3, +(2, 1))': 6}" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "{'*(*(1, 2), 3)': 6,\n", " '*(*(1, 3), 2)': 6,\n", " '*(*(2, 1), 3)': 6,\n", " '*(*(2, 3), 1)': 6,\n", " '*(*(3, 1), 2)': 6,\n", " '*(*(3, 2), 1)': 6,\n", " '*(+(1, 2), 3)': 9,\n", " '*(+(1, 3), 2)': 8,\n", " '*(+(2, 1), 3)': 9,\n", " '*(+(2, 3), 1)': 5,\n", " '*(+(3, 1), 2)': 8,\n", " '*(+(3, 2), 1)': 5,\n", " '*(1, *(2, 3))': 6,\n", " '*(1, *(3, 2))': 6,\n", " '*(1, +(2, 3))': 5,\n", " '*(1, +(3, 2))': 5,\n", " '*(2, *(1, 3))': 6,\n", " '*(2, *(3, 1))': 6,\n", " '*(2, +(1, 3))': 8,\n", " '*(2, +(3, 1))': 8,\n", " '*(3, *(1, 2))': 6,\n", " '*(3, *(2, 1))': 6,\n", " '*(3, +(1, 2))': 9,\n", " '*(3, +(2, 1))': 9,\n", " '+(*(1, 2), 3)': 5,\n", " '+(*(1, 3), 2)': 5,\n", " '+(*(2, 1), 3)': 5,\n", " '+(*(2, 3), 1)': 7,\n", " '+(*(3, 1), 2)': 5,\n", " '+(*(3, 2), 1)': 7,\n", " '+(+(1, 2), 3)': 6,\n", " '+(+(1, 3), 2)': 6,\n", " '+(+(2, 1), 3)': 6,\n", " '+(+(2, 3), 1)': 6,\n", " '+(+(3, 1), 2)': 6,\n", " '+(+(3, 2), 1)': 6,\n", " '+(1, *(2, 3))': 7,\n", " '+(1, *(3, 2))': 7,\n", " '+(1, +(2, 3))': 6,\n", " '+(1, +(3, 2))': 6,\n", " '+(2, *(1, 3))': 5,\n", " '+(2, *(3, 1))': 5,\n", " '+(2, +(1, 3))': 6,\n", " '+(2, +(3, 1))': 6,\n", " '+(3, *(1, 2))': 5,\n", " '+(3, *(2, 1))': 5,\n", " '+(3, +(1, 2))': 6,\n", " '+(3, +(2, 1))': 6}" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tous_les_resultats_2([1, 2, 3], [add])\n", "tous_les_resultats_2([1, 2, 3], [add, mul])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Si on stocke avec comme clés les expressions, on va en avoir BEAUCOUP.\n", "Faisons l'inverse, avec le résultat de l'expression comme clés." ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def tous_les_resultats_3(nombres, ops=operations):\n", " assert len(nombres) == 3\n", " tous = {}\n", " for (x, y, z) in permutations(nombres):\n", " # on a un ordre pour x, y, z\n", " for f1 in ops:\n", " for f2 in ops:\n", " n1 = f1(f2(x, y), z)\n", " s1 = \"{}({}({}, {}), {})\".format(noms_operations[f1], noms_operations[f2], x, y, z)\n", " tous[n1] = s1\n", " n2 = f1(x, f2(y, z))\n", " s2 = \"{}({}, {}({}, {}))\".format(noms_operations[f1], x, noms_operations[f2], y, z)\n", " tous[n2] = s2\n", " return tous" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{6: '+(3, +(2, 1))'}" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "{5: '*(+(3, 2), 1)',\n", " 6: '*(3, *(2, 1))',\n", " 7: '+(*(3, 2), 1)',\n", " 8: '*(+(3, 1), 2)',\n", " 9: '*(3, +(2, 1))'}" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tous_les_resultats_3([1, 2, 3], [add])\n", "tous_les_resultats_3([1, 2, 3], [add, mul])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Beaucoup plus raisonnable ! Ici, pour le 2ème exemple, le plus grand nombre premier obtenu est $7 = (3 \\times 2) + 1$." ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def plus_grand_premier(nombres, ops=operations):\n", " tous = tous_les_resultats_3(nombres, ops=ops)\n", " premiers = [ p for p in tous.keys() if isprime(p) ]\n", " plus_grand_premier = max(premiers)\n", " expression = tous[plus_grand_premier]\n", " return plus_grand_premier, expression" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7, '+(*(3, 2), 1)')" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plus_grand_premier([1, 2, 3], [add, mul])" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "ename": "ZeroDivisionError", "evalue": "integer division or modulo by zero", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mZeroDivisionError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mplus_grand_premier\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36mplus_grand_premier\u001b[0;34m(nombres, ops)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplus_grand_premier\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnombres\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moperations\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mtous\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtous_les_resultats_3\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnombres\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mops\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mops\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 3\u001b[0m \u001b[0mpremiers\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m \u001b[0mp\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mp\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtous\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misprime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mp\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mplus_grand_premier\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmax\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpremiers\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mexpression\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtous\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mplus_grand_premier\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;32m\u001b[0m in \u001b[0;36mtous_les_resultats_3\u001b[0;34m(nombres, ops)\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0ms1\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"{}({}({}, {}), {})\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnoms_operations\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnoms_operations\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mtous\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ms1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m \u001b[0mn2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf1\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 12\u001b[0m \u001b[0ms2\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"{}({}, {}({}, {}))\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnoms_operations\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnoms_operations\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mz\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 13\u001b[0m \u001b[0mtous\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mn2\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0ms2\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mZeroDivisionError\u001b[0m: integer division or modulo by zero" ] } ], "source": [ "plus_grand_premier([1, 2, 3])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Il faut ignorer les erreurs de calculs et ne pas ajouter le nombre dans ce cas:" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "def tous_les_resultats_4(nombres, ops=operations):\n", " assert len(nombres) == 3\n", " tous = {}\n", " for (x, y, z) in permutations(nombres):\n", " # on a un ordre pour x, y, z\n", " for f1 in ops:\n", " for f2 in ops:\n", " try:\n", " n1 = f1(f2(x, y), z)\n", " s1 = \"{}({}({}, {}), {})\".format(noms_operations[f1], noms_operations[f2], x, y, z)\n", " tous[n1] = s1\n", " except:\n", " pass\n", " try:\n", " n2 = f1(x, f2(y, z))\n", " s2 = \"{}({}, {}({}, {}))\".format(noms_operations[f1], x, noms_operations[f2], y, z)\n", " tous[n2] = s2\n", " except:\n", " pass\n", " return tous" ] }, { "cell_type": "code", "execution_count": 85, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def plus_grand_premier_2(nombres, ops=operations):\n", " tous = tous_les_resultats_4(nombres, ops=ops)\n", " premiers = [ p for p in tous.keys() if isprime(p) ]\n", " plus_grand_premier = max(premiers)\n", " expression = tous[plus_grand_premier]\n", " return plus_grand_premier, expression" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7, '+(*(3, 2), 1)')" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plus_grand_premier_2([1, 2, 3], [add, mul])" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(7, '+(*(3, 2), 1)')" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plus_grand_premier_2([1, 2, 3])" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1117, '+(*(93, 12), 1)')" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plus_grand_premier_2([12, 1, 93])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tester sur un jour" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "datetime.datetime(2017, 2, 3, 0, 0)" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "(53, '+(*(17, 3), 2)')" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "date\n", "x, y, z = date_vers_nombre(date)\n", "plus_grand_premier_2([x, y, z])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Tester tous les jours de l'année" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "On peut partir du 1er janvier de cette année, et ajouter des jours un par un.\n", "On utilise un itérateur (avec le mot clé `yield`), pour pouvoir facilement boucler sur tous les jours de l'année en cours :" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "scrolled": true }, "outputs": [], "source": [ "from datetime import timedelta\n", "\n", "def tous_les_jours(year=YEAR):\n", " date = datetime(year, 1, 1)\n", " un_jour = timedelta(days=1)\n", " for i in range(0, 366):\n", " yield date\n", " date += un_jour\n", " if date.year > year: # On est allé trop loin\n", " raise StopIteration" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pour la date 01-01-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, +(1, 1)).\n", "Pour la date 02-01-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(/(17, 1), 2).\n", "Pour la date 03-01-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(17, -(1, 3)).\n", "Pour la date 04-01-2017, le plus grand nombre premier obtenu est 67, avec l'expression -(*(17, 4), 1).\n", "Pour la date 05-01-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(17, +(1, 5)).\n", "Pour la date 06-01-2017, le plus grand nombre premier obtenu est 103, avec l'expression +(*(17, 6), 1).\n", "Pour la date 07-01-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(17, -(1, 7)).\n", "Pour la date 08-01-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(*(17, 8), 1).\n", "Pour la date 09-01-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, %(1, 9)).\n", "Pour la date 10-01-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, %(1, 10)).\n", "Pour la date 11-01-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(1, 11)).\n", "Pour la date 12-01-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(/(17, 1), 12).\n", "Pour la date 13-01-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(1, 13)).\n", "Pour la date 14-01-2017, le plus grand nombre premier obtenu est 239, avec l'expression +(*(17, 14), 1).\n", "Pour la date 15-01-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(17, -(1, 15)).\n", "Pour la date 16-01-2017, le plus grand nombre premier obtenu est 271, avec l'expression -(*(17, 16), 1).\n", "Pour la date 17-01-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, %(1, 17)).\n", "Pour la date 18-01-2017, le plus grand nombre premier obtenu est 307, avec l'expression +(*(17, 18), 1).\n", "Pour la date 19-01-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(1, 19)).\n", "Pour la date 20-01-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(/(17, 1), 20).\n", "Pour la date 21-01-2017, le plus grand nombre premier obtenu est 37, avec l'expression -(17, -(1, 21)).\n", "Pour la date 22-01-2017, le plus grand nombre premier obtenu est 373, avec l'expression -(*(17, 22), 1).\n", "Pour la date 23-01-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(1, 23)).\n", "Pour la date 24-01-2017, le plus grand nombre premier obtenu est 409, avec l'expression +(*(17, 24), 1).\n", "Pour la date 25-01-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(1, 25)).\n", "Pour la date 26-01-2017, le plus grand nombre premier obtenu est 443, avec l'expression +(*(17, 26), 1).\n", "Pour la date 27-01-2017, le plus grand nombre premier obtenu est 43, avec l'expression -(17, -(1, 27)).\n", "Pour la date 28-01-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(%(1, 17), 28).\n", "Pour la date 29-01-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(1, 29)).\n", "Pour la date 30-01-2017, le plus grand nombre premier obtenu est 509, avec l'expression -(*(17, 30), 1).\n", "Pour la date 31-01-2017, le plus grand nombre premier obtenu est 47, avec l'expression -(17, -(1, 31)).\n", "Pour la date 01-02-2017, le plus grand nombre premier obtenu est 19, avec l'expression /(+(17, 2), 1).\n", "Pour la date 02-02-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(2, 2)).\n", "Pour la date 03-02-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(*(17, 3), 2).\n", "Pour la date 04-02-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(17, +(2, 4)).\n", "Pour la date 05-02-2017, le plus grand nombre premier obtenu est 83, avec l'expression -(*(17, 5), 2).\n", "Pour la date 06-02-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, *(2, 6)).\n", "Pour la date 07-02-2017, le plus grand nombre premier obtenu est 59, avec l'expression /(*(17, 7), 2).\n", "Pour la date 08-02-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(17, -(2, 8)).\n", "Pour la date 09-02-2017, le plus grand nombre premier obtenu est 151, avec l'expression -(*(17, 9), 2).\n", "Pour la date 10-02-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, *(2, 10)).\n", "Pour la date 11-02-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(*(17, 2), 11).\n", "Pour la date 12-02-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, *(2, 12)).\n", "Pour la date 13-02-2017, le plus grand nombre premier obtenu est 223, avec l'expression +(*(17, 13), 2).\n", "Pour la date 14-02-2017, le plus grand nombre premier obtenu est 29, avec l'expression -(17, -(2, 14)).\n", "Pour la date 15-02-2017, le plus grand nombre premier obtenu est 257, avec l'expression +(*(17, 15), 2).\n", "Pour la date 16-02-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(17, -(2, 16)).\n", "Pour la date 17-02-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, %(2, 17)).\n", "Pour la date 18-02-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, *(2, 18)).\n", "Pour la date 19-02-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(*(17, 2), 19).\n", "Pour la date 20-02-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(*(2, 20), 17).\n", "Pour la date 21-02-2017, le plus grand nombre premier obtenu est 359, avec l'expression +(*(17, 21), 2).\n", "Pour la date 22-02-2017, le plus grand nombre premier obtenu est 61, avec l'expression +(17, *(2, 22)).\n", "Pour la date 23-02-2017, le plus grand nombre premier obtenu est 389, avec l'expression -(*(17, 23), 2).\n", "Pour la date 24-02-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(2, 24)).\n", "Pour la date 25-02-2017, le plus grand nombre premier obtenu est 67, avec l'expression +(17, *(2, 25)).\n", "Pour la date 26-02-2017, le plus grand nombre premier obtenu est 41, avec l'expression -(17, -(2, 26)).\n", "Pour la date 27-02-2017, le plus grand nombre premier obtenu est 461, avec l'expression +(*(17, 27), 2).\n", "Pour la date 28-02-2017, le plus grand nombre premier obtenu est 73, avec l'expression +(17, *(2, 28)).\n", "Pour la date 01-03-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(+(17, 3), 1).\n", "Pour la date 02-03-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(*(17, 3), 2).\n", "Pour la date 03-03-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(17, +(3, 3)).\n", "Pour la date 04-03-2017, le plus grand nombre premier obtenu est 71, avec l'expression +(*(17, 4), 3).\n", "Pour la date 05-03-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(17, -(3, 5)).\n", "Pour la date 06-03-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(6, 3)).\n", "Pour la date 07-03-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(7, 3)).\n", "Pour la date 08-03-2017, le plus grand nombre premier obtenu est 139, avec l'expression +(*(17, 8), 3).\n", "Pour la date 09-03-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(3, 9)).\n", "Pour la date 10-03-2017, le plus grand nombre premier obtenu est 173, avec l'expression +(*(17, 10), 3).\n", "Pour la date 11-03-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(3, 11)).\n", "Pour la date 12-03-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, *(3, 12)).\n", "Pour la date 13-03-2017, le plus grand nombre premier obtenu est 73, avec l'expression /(*(17, 13), 3).\n", "Pour la date 14-03-2017, le plus grand nombre premier obtenu est 241, avec l'expression +(*(17, 14), 3).\n", "Pour la date 15-03-2017, le plus grand nombre premier obtenu est 29, avec l'expression -(17, -(3, 15)).\n", "Pour la date 16-03-2017, le plus grand nombre premier obtenu est 269, avec l'expression -(*(17, 16), 3).\n", "Pour la date 17-03-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(3, 17)).\n", "Pour la date 18-03-2017, le plus grand nombre premier obtenu est 71, avec l'expression +(17, *(3, 18)).\n", "Pour la date 19-03-2017, le plus grand nombre premier obtenu est 107, avec l'expression /(*(17, 19), 3).\n", "Pour la date 20-03-2017, le plus grand nombre premier obtenu est 337, avec l'expression -(*(17, 20), 3).\n", "Pour la date 21-03-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(3, 21)).\n", "Pour la date 22-03-2017, le plus grand nombre premier obtenu est 83, avec l'expression +(17, *(3, 22)).\n", "Pour la date 23-03-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(3, 23)).\n", "Pour la date 24-03-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(17, *(3, 24)).\n", "Pour la date 25-03-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(25, %(17, 3)).\n", "Pour la date 26-03-2017, le plus grand nombre premier obtenu est 439, avec l'expression -(*(17, 26), 3).\n", "Pour la date 27-03-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(3, 27)).\n", "Pour la date 28-03-2017, le plus grand nombre premier obtenu est 479, avec l'expression +(*(17, 28), 3).\n", "Pour la date 29-03-2017, le plus grand nombre premier obtenu est 43, avec l'expression -(17, -(3, 29)).\n", "Pour la date 30-03-2017, le plus grand nombre premier obtenu est 107, avec l'expression +(17, *(3, 30)).\n", "Pour la date 31-03-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(/(3, 17), 31).\n", "Pour la date 01-04-2017, le plus grand nombre premier obtenu est 67, avec l'expression -(*(17, 4), 1).\n", "Pour la date 02-04-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(17, +(4, 2)).\n", "Pour la date 03-04-2017, le plus grand nombre premier obtenu est 71, avec l'expression +(*(17, 4), 3).\n", "Pour la date 04-04-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(4, 4)).\n", "Pour la date 05-04-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(*(17, 5), 4).\n", "Pour la date 06-04-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, *(4, 6)).\n", "Pour la date 07-04-2017, le plus grand nombre premier obtenu est 61, avec l'expression -(*(17, 4), 7).\n", "Pour la date 08-04-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(4, 8)).\n", "Pour la date 09-04-2017, le plus grand nombre premier obtenu est 157, avec l'expression +(*(17, 9), 4).\n", "Pour la date 10-04-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(4, 10)).\n", "Pour la date 11-04-2017, le plus grand nombre premier obtenu est 191, avec l'expression +(*(17, 11), 4).\n", "Pour la date 12-04-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(*(4, 12), 17).\n", "Pour la date 13-04-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, /(4, 13)).\n", "Pour la date 14-04-2017, le plus grand nombre premier obtenu est 73, avec l'expression +(17, *(4, 14)).\n", "Pour la date 15-04-2017, le plus grand nombre premier obtenu est 251, avec l'expression -(*(17, 15), 4).\n", "Pour la date 16-04-2017, le plus grand nombre premier obtenu est 47, avec l'expression -(*(4, 16), 17).\n", "Pour la date 17-04-2017, le plus grand nombre premier obtenu est 293, avec l'expression +(*(17, 17), 4).\n", "Pour la date 18-04-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(17, *(4, 18)).\n", "Pour la date 19-04-2017, le plus grand nombre premier obtenu est 59, avec l'expression -(*(4, 19), 17).\n", "Pour la date 20-04-2017, le plus grand nombre premier obtenu est 97, avec l'expression +(17, *(4, 20)).\n", "Pour la date 21-04-2017, le plus grand nombre premier obtenu est 353, avec l'expression -(*(17, 21), 4).\n", "Pour la date 22-04-2017, le plus grand nombre premier obtenu est 71, avec l'expression -(*(4, 22), 17).\n", "Pour la date 23-04-2017, le plus grand nombre premier obtenu est 109, avec l'expression +(17, *(4, 23)).\n", "Pour la date 24-04-2017, le plus grand nombre premier obtenu est 113, avec l'expression +(17, *(4, 24)).\n", "Pour la date 25-04-2017, le plus grand nombre premier obtenu est 421, avec l'expression -(*(17, 25), 4).\n", "Pour la date 26-04-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(4, 26)).\n", "Pour la date 27-04-2017, le plus grand nombre premier obtenu est 463, avec l'expression +(*(17, 27), 4).\n", "Pour la date 28-04-2017, le plus grand nombre premier obtenu est 41, avec l'expression -(17, -(4, 28)).\n", "Pour la date 29-04-2017, le plus grand nombre premier obtenu est 97, avec l'expression +(*(17, 4), 29).\n", "Pour la date 30-04-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(17, *(4, 30)).\n", "Pour la date 01-05-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(17, +(5, 1)).\n", "Pour la date 02-05-2017, le plus grand nombre premier obtenu est 83, avec l'expression -(*(17, 5), 2).\n", "Pour la date 03-05-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(+(17, 5), 3).\n", "Pour la date 04-05-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(*(17, 5), 4).\n", "Pour la date 05-05-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(5, 5)).\n", "Pour la date 06-05-2017, le plus grand nombre premier obtenu est 107, avec l'expression +(*(17, 6), 5).\n", "Pour la date 07-05-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(5, 7)).\n", "Pour la date 08-05-2017, le plus grand nombre premier obtenu est 131, avec l'expression -(*(17, 8), 5).\n", "Pour la date 09-05-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(5, 9)).\n", "Pour la date 10-05-2017, le plus grand nombre premier obtenu est 67, avec l'expression +(17, *(5, 10)).\n", "Pour la date 11-05-2017, le plus grand nombre premier obtenu est 37, avec l'expression /(*(17, 11), 5).\n", "Pour la date 12-05-2017, le plus grand nombre premier obtenu est 199, avec l'expression -(*(17, 12), 5).\n", "Pour la date 13-05-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(13, 5)).\n", "Pour la date 14-05-2017, le plus grand nombre premier obtenu est 233, avec l'expression -(*(17, 14), 5).\n", "Pour la date 15-05-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(5, 15)).\n", "Pour la date 16-05-2017, le plus grand nombre premier obtenu est 277, avec l'expression +(*(17, 16), 5).\n", "Pour la date 17-05-2017, le plus grand nombre premier obtenu est 29, avec l'expression -(17, -(5, 17)).\n", "Pour la date 18-05-2017, le plus grand nombre premier obtenu est 311, avec l'expression +(*(17, 18), 5).\n", "Pour la date 19-05-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(5, 19)).\n", "Pour la date 20-05-2017, le plus grand nombre premier obtenu est 83, avec l'expression -(*(5, 20), 17).\n", "Pour la date 21-05-2017, le plus grand nombre premier obtenu est 71, avec l'expression /(*(17, 21), 5).\n", "Pour la date 22-05-2017, le plus grand nombre premier obtenu est 379, avec l'expression +(*(17, 22), 5).\n", "Pour la date 23-05-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(/(5, 17), 23).\n", "Pour la date 24-05-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(17, *(5, 24)).\n", "Pour la date 25-05-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(5, 25)).\n", "Pour la date 26-05-2017, le plus grand nombre premier obtenu est 113, avec l'expression -(*(5, 26), 17).\n", "Pour la date 27-05-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(%(17, 5), 27).\n", "Pour la date 28-05-2017, le plus grand nombre premier obtenu est 157, avec l'expression +(17, *(5, 28)).\n", "Pour la date 29-05-2017, le plus grand nombre premier obtenu est 41, avec l'expression -(17, -(5, 29)).\n", "Pour la date 30-05-2017, le plus grand nombre premier obtenu est 167, avec l'expression +(17, *(5, 30)).\n", "Pour la date 31-05-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, +(5, 31)).\n", "Pour la date 01-06-2017, le plus grand nombre premier obtenu est 103, avec l'expression +(*(17, 6), 1).\n", "Pour la date 02-06-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, *(6, 2)).\n", "Pour la date 03-06-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(6, 3)).\n", "Pour la date 04-06-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, *(6, 4)).\n", "Pour la date 05-06-2017, le plus grand nombre premier obtenu est 107, avec l'expression +(*(17, 6), 5).\n", "Pour la date 06-06-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, *(6, 6)).\n", "Pour la date 07-06-2017, le plus grand nombre premier obtenu est 113, avec l'expression -(*(17, 7), 6).\n", "Pour la date 08-06-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(6, 8)).\n", "Pour la date 09-06-2017, le plus grand nombre premier obtenu est 71, avec l'expression +(17, *(6, 9)).\n", "Pour la date 10-06-2017, le plus grand nombre premier obtenu est 43, avec l'expression -(*(6, 10), 17).\n", "Pour la date 11-06-2017, le plus grand nombre premier obtenu est 193, avec l'expression +(*(17, 11), 6).\n", "Pour la date 12-06-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(17, *(6, 12)).\n", "Pour la date 13-06-2017, le plus grand nombre premier obtenu est 227, avec l'expression +(*(17, 13), 6).\n", "Pour la date 14-06-2017, le plus grand nombre premier obtenu est 101, avec l'expression +(17, *(6, 14)).\n", "Pour la date 15-06-2017, le plus grand nombre premier obtenu est 107, avec l'expression +(17, *(6, 15)).\n", "Pour la date 16-06-2017, le plus grand nombre premier obtenu est 113, avec l'expression +(17, *(6, 16)).\n", "Pour la date 17-06-2017, le plus grand nombre premier obtenu est 283, avec l'expression -(*(17, 17), 6).\n", "Pour la date 18-06-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(6, 18)).\n", "Pour la date 19-06-2017, le plus grand nombre premier obtenu est 317, avec l'expression -(*(17, 19), 6).\n", "Pour la date 20-06-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(17, *(6, 20)).\n", "Pour la date 21-06-2017, le plus grand nombre premier obtenu est 109, avec l'expression -(*(6, 21), 17).\n", "Pour la date 22-06-2017, le plus grand nombre premier obtenu est 149, avec l'expression +(17, *(6, 22)).\n", "Pour la date 23-06-2017, le plus grand nombre premier obtenu est 397, avec l'expression +(*(17, 23), 6).\n", "Pour la date 24-06-2017, le plus grand nombre premier obtenu est 127, avec l'expression -(*(6, 24), 17).\n", "Pour la date 25-06-2017, le plus grand nombre premier obtenu est 431, avec l'expression +(*(17, 25), 6).\n", "Pour la date 26-06-2017, le plus grand nombre premier obtenu est 173, avec l'expression +(17, *(6, 26)).\n", "Pour la date 27-06-2017, le plus grand nombre premier obtenu est 179, avec l'expression +(17, *(6, 27)).\n", "Pour la date 28-06-2017, le plus grand nombre premier obtenu est 151, avec l'expression -(*(6, 28), 17).\n", "Pour la date 29-06-2017, le plus grand nombre premier obtenu est 499, avec l'expression +(*(17, 29), 6).\n", "Pour la date 30-06-2017, le plus grand nombre premier obtenu est 197, avec l'expression +(17, *(6, 30)).\n", "Pour la date 01-07-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(+(17, 7), 1).\n", "Pour la date 02-07-2017, le plus grand nombre premier obtenu est 59, avec l'expression /(*(17, 7), 2).\n", "Pour la date 03-07-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(7, 3)).\n", "Pour la date 04-07-2017, le plus grand nombre premier obtenu est 61, avec l'expression -(*(17, 4), 7).\n", "Pour la date 05-07-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(7, 5)).\n", "Pour la date 06-07-2017, le plus grand nombre premier obtenu est 113, avec l'expression -(*(17, 7), 6).\n", "Pour la date 07-07-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(7, 7)).\n", "Pour la date 08-07-2017, le plus grand nombre premier obtenu est 127, avec l'expression +(*(17, 7), 8).\n", "Pour la date 09-07-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(17, -(7, 9)).\n", "Pour la date 10-07-2017, le plus grand nombre premier obtenu est 163, avec l'expression -(*(17, 10), 7).\n", "Pour la date 11-07-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, /(7, 11)).\n", "Pour la date 12-07-2017, le plus grand nombre premier obtenu est 211, avec l'expression +(*(17, 12), 7).\n", "Pour la date 13-07-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(7, 13)).\n", "Pour la date 14-07-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(14, 7)).\n", "Pour la date 15-07-2017, le plus grand nombre premier obtenu est 19, avec l'expression +(17, /(15, 7)).\n", "Pour la date 16-07-2017, le plus grand nombre premier obtenu est 103, avec l'expression -(*(17, 7), 16).\n", "Pour la date 17-07-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(7, 17)).\n", "Pour la date 18-07-2017, le plus grand nombre premier obtenu est 313, avec l'expression +(*(17, 18), 7).\n", "Pour la date 19-07-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(7, 19)).\n", "Pour la date 20-07-2017, le plus grand nombre premier obtenu est 347, avec l'expression +(*(17, 20), 7).\n", "Pour la date 21-07-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(17, -(7, 21)).\n", "Pour la date 22-07-2017, le plus grand nombre premier obtenu est 367, avec l'expression -(*(17, 22), 7).\n", "Pour la date 23-07-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(7, 23)).\n", "Pour la date 24-07-2017, le plus grand nombre premier obtenu est 401, avec l'expression -(*(17, 24), 7).\n", "Pour la date 25-07-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(25, /(17, 7)).\n", "Pour la date 26-07-2017, le plus grand nombre premier obtenu est 449, avec l'expression +(*(17, 26), 7).\n", "Pour la date 27-07-2017, le plus grand nombre premier obtenu est 37, avec l'expression -(17, -(7, 27)).\n", "Pour la date 28-07-2017, le plus grand nombre premier obtenu est 179, avec l'expression -(*(7, 28), 17).\n", "Pour la date 29-07-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, +(7, 29)).\n", "Pour la date 30-07-2017, le plus grand nombre premier obtenu est 503, avec l'expression -(*(17, 30), 7).\n", "Pour la date 31-07-2017, le plus grand nombre premier obtenu est 41, avec l'expression -(17, -(7, 31)).\n", "Pour la date 01-08-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(*(17, 8), 1).\n", "Pour la date 02-08-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(+(17, 8), 2).\n", "Pour la date 03-08-2017, le plus grand nombre premier obtenu est 139, avec l'expression +(*(17, 8), 3).\n", "Pour la date 04-08-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(8, 4)).\n", "Pour la date 05-08-2017, le plus grand nombre premier obtenu est 131, avec l'expression -(*(17, 8), 5).\n", "Pour la date 06-08-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(8, 6)).\n", "Pour la date 07-08-2017, le plus grand nombre premier obtenu est 127, avec l'expression +(*(17, 7), 8).\n", "Pour la date 08-08-2017, le plus grand nombre premier obtenu est 47, avec l'expression -(*(8, 8), 17).\n", "Pour la date 09-08-2017, le plus grand nombre premier obtenu est 127, avec l'expression -(*(17, 8), 9).\n", "Pour la date 10-08-2017, le plus grand nombre premier obtenu est 97, avec l'expression +(17, *(8, 10)).\n", "Pour la date 11-08-2017, le plus grand nombre premier obtenu est 179, avec l'expression -(*(17, 11), 8).\n", "Pour la date 12-08-2017, le plus grand nombre premier obtenu est 113, avec l'expression +(17, *(8, 12)).\n", "Pour la date 13-08-2017, le plus grand nombre premier obtenu est 229, avec l'expression +(*(17, 13), 8).\n", "Pour la date 14-08-2017, le plus grand nombre premier obtenu est 29, avec l'expression /(*(17, 14), 8).\n", "Pour la date 15-08-2017, le plus grand nombre premier obtenu est 263, avec l'expression +(*(17, 15), 8).\n", "Pour la date 16-08-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(8, 16)).\n", "Pour la date 17-08-2017, le plus grand nombre premier obtenu est 281, avec l'expression -(*(17, 17), 8).\n", "Pour la date 18-08-2017, le plus grand nombre premier obtenu est 127, avec l'expression -(*(8, 18), 17).\n", "Pour la date 19-08-2017, le plus grand nombre premier obtenu est 331, avec l'expression +(*(17, 19), 8).\n", "Pour la date 20-08-2017, le plus grand nombre premier obtenu est 29, avec l'expression -(17, -(8, 20)).\n", "Pour la date 21-08-2017, le plus grand nombre premier obtenu est 349, avec l'expression -(*(17, 21), 8).\n", "Pour la date 22-08-2017, le plus grand nombre premier obtenu est 193, avec l'expression +(17, *(8, 22)).\n", "Pour la date 23-08-2017, le plus grand nombre premier obtenu est 383, avec l'expression -(*(17, 23), 8).\n", "Pour la date 24-08-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(24, %(17, 8)).\n", "Pour la date 25-08-2017, le plus grand nombre premier obtenu est 433, avec l'expression +(*(17, 25), 8).\n", "Pour la date 26-08-2017, le plus grand nombre premier obtenu est 191, avec l'expression -(*(8, 26), 17).\n", "Pour la date 27-08-2017, le plus grand nombre premier obtenu est 467, avec l'expression +(*(17, 27), 8).\n", "Pour la date 28-08-2017, le plus grand nombre premier obtenu est 241, avec l'expression +(17, *(8, 28)).\n", "Pour la date 29-08-2017, le plus grand nombre premier obtenu est 107, avec l'expression -(*(17, 8), 29).\n", "Pour la date 30-08-2017, le plus grand nombre premier obtenu est 257, avec l'expression +(17, *(8, 30)).\n", "Pour la date 31-08-2017, le plus grand nombre premier obtenu est 167, avec l'expression +(*(17, 8), 31).\n", "Pour la date 01-09-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, %(9, 1)).\n", "Pour la date 02-09-2017, le plus grand nombre premier obtenu est 151, avec l'expression -(*(17, 9), 2).\n", "Pour la date 03-09-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(9, 3)).\n", "Pour la date 04-09-2017, le plus grand nombre premier obtenu est 157, avec l'expression +(*(17, 9), 4).\n", "Pour la date 05-09-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(9, 5)).\n", "Pour la date 06-09-2017, le plus grand nombre premier obtenu est 71, avec l'expression +(17, *(9, 6)).\n", "Pour la date 07-09-2017, le plus grand nombre premier obtenu est 19, avec l'expression -(+(17, 9), 7).\n", "Pour la date 08-09-2017, le plus grand nombre premier obtenu est 127, avec l'expression -(*(17, 8), 9).\n", "Pour la date 09-09-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(9, 9)).\n", "Pour la date 10-09-2017, le plus grand nombre premier obtenu est 179, avec l'expression +(*(17, 10), 9).\n", "Pour la date 11-09-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(9, 11)).\n", "Pour la date 12-09-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, /(9, 12)).\n", "Pour la date 13-09-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, /(9, 13)).\n", "Pour la date 14-09-2017, le plus grand nombre premier obtenu est 229, avec l'expression -(*(17, 14), 9).\n", "Pour la date 15-09-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(9, 15)).\n", "Pour la date 16-09-2017, le plus grand nombre premier obtenu est 281, avec l'expression +(*(17, 16), 9).\n", "Pour la date 17-09-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(9, 17)).\n", "Pour la date 18-09-2017, le plus grand nombre premier obtenu est 179, avec l'expression +(17, *(9, 18)).\n", "Pour la date 19-09-2017, le plus grand nombre premier obtenu est 19, avec l'expression *(/(17, 9), 19).\n", "Pour la date 20-09-2017, le plus grand nombre premier obtenu est 349, avec l'expression +(*(17, 20), 9).\n", "Pour la date 21-09-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(9, 21)).\n", "Pour la date 22-09-2017, le plus grand nombre premier obtenu est 383, avec l'expression +(*(17, 22), 9).\n", "Pour la date 23-09-2017, le plus grand nombre premier obtenu est 43, avec l'expression /(*(17, 23), 9).\n", "Pour la date 24-09-2017, le plus grand nombre premier obtenu est 233, avec l'expression +(17, *(9, 24)).\n", "Pour la date 25-09-2017, le plus grand nombre premier obtenu est 47, avec l'expression /(*(17, 25), 9).\n", "Pour la date 26-09-2017, le plus grand nombre premier obtenu est 433, avec l'expression -(*(17, 26), 9).\n", "Pour la date 27-09-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, +(9, 27)).\n", "Pour la date 28-09-2017, le plus grand nombre premier obtenu est 467, avec l'expression -(*(17, 28), 9).\n", "Pour la date 29-09-2017, le plus grand nombre premier obtenu est 37, avec l'expression -(17, -(9, 29)).\n", "Pour la date 30-09-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(/(17, 9), 30).\n", "Pour la date 01-10-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, %(10, 1)).\n", "Pour la date 02-10-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, *(10, 2)).\n", "Pour la date 03-10-2017, le plus grand nombre premier obtenu est 173, avec l'expression +(*(17, 10), 3).\n", "Pour la date 04-10-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(10, 4)).\n", "Pour la date 05-10-2017, le plus grand nombre premier obtenu est 67, avec l'expression +(17, *(10, 5)).\n", "Pour la date 06-10-2017, le plus grand nombre premier obtenu est 43, avec l'expression -(*(10, 6), 17).\n", "Pour la date 07-10-2017, le plus grand nombre premier obtenu est 163, avec l'expression -(*(17, 10), 7).\n", "Pour la date 08-10-2017, le plus grand nombre premier obtenu est 97, avec l'expression +(17, *(10, 8)).\n", "Pour la date 09-10-2017, le plus grand nombre premier obtenu est 179, avec l'expression +(*(17, 10), 9).\n", "Pour la date 10-10-2017, le plus grand nombre premier obtenu est 83, avec l'expression -(*(10, 10), 17).\n", "Pour la date 11-10-2017, le plus grand nombre premier obtenu est 197, avec l'expression +(*(17, 11), 10).\n", "Pour la date 12-10-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(17, *(10, 12)).\n", "Pour la date 13-10-2017, le plus grand nombre premier obtenu est 211, avec l'expression -(*(17, 13), 10).\n", "Pour la date 14-10-2017, le plus grand nombre premier obtenu est 157, avec l'expression +(17, *(10, 14)).\n", "Pour la date 15-10-2017, le plus grand nombre premier obtenu est 167, avec l'expression +(17, *(10, 15)).\n", "Pour la date 16-10-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(10, 16)).\n", "Pour la date 17-10-2017, le plus grand nombre premier obtenu est 17, avec l'expression -(17, /(10, 17)).\n", "Pour la date 18-10-2017, le plus grand nombre premier obtenu est 197, avec l'expression +(17, *(10, 18)).\n", "Pour la date 19-10-2017, le plus grand nombre premier obtenu est 313, avec l'expression -(*(17, 19), 10).\n", "Pour la date 20-10-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(10, 20)).\n", "Pour la date 21-10-2017, le plus grand nombre premier obtenu est 367, avec l'expression +(*(17, 21), 10).\n", "Pour la date 22-10-2017, le plus grand nombre premier obtenu est 37, avec l'expression /(*(17, 22), 10).\n", "Pour la date 23-10-2017, le plus grand nombre premier obtenu est 401, avec l'expression +(*(17, 23), 10).\n", "Pour la date 24-10-2017, le plus grand nombre premier obtenu est 257, avec l'expression +(17, *(10, 24)).\n", "Pour la date 25-10-2017, le plus grand nombre premier obtenu est 233, avec l'expression -(*(10, 25), 17).\n", "Pour la date 26-10-2017, le plus grand nombre premier obtenu est 277, avec l'expression +(17, *(10, 26)).\n", "Pour la date 27-10-2017, le plus grand nombre premier obtenu est 449, avec l'expression -(*(17, 27), 10).\n", "Pour la date 28-10-2017, le plus grand nombre premier obtenu est 263, avec l'expression -(*(10, 28), 17).\n", "Pour la date 29-10-2017, le plus grand nombre premier obtenu est 503, avec l'expression +(*(17, 29), 10).\n", "Pour la date 30-10-2017, le plus grand nombre premier obtenu est 317, avec l'expression +(17, *(10, 30)).\n", "Pour la date 31-10-2017, le plus grand nombre premier obtenu est 293, avec l'expression -(*(10, 31), 17).\n", "Pour la date 01-11-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, +(11, 1)).\n", "Pour la date 02-11-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(*(17, 2), 11).\n", "Pour la date 03-11-2017, le plus grand nombre premier obtenu est 31, avec l'expression +(17, +(11, 3)).\n", "Pour la date 04-11-2017, le plus grand nombre premier obtenu est 191, avec l'expression +(*(17, 11), 4).\n", "Pour la date 05-11-2017, le plus grand nombre premier obtenu est 37, avec l'expression /(*(17, 11), 5).\n", "Pour la date 06-11-2017, le plus grand nombre premier obtenu est 193, avec l'expression +(*(17, 11), 6).\n", "Pour la date 07-11-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(11, 7)).\n", "Pour la date 08-11-2017, le plus grand nombre premier obtenu est 179, avec l'expression -(*(17, 11), 8).\n", "Pour la date 09-11-2017, le plus grand nombre premier obtenu est 37, avec l'expression +(17, +(11, 9)).\n", "Pour la date 10-11-2017, le plus grand nombre premier obtenu est 197, avec l'expression +(*(17, 11), 10).\n", "Pour la date 11-11-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(11, 11)).\n", "Pour la date 12-11-2017, le plus grand nombre premier obtenu est 199, avec l'expression +(*(17, 11), 12).\n", "Pour la date 13-11-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, +(11, 13)).\n", "Pour la date 14-11-2017, le plus grand nombre premier obtenu est 227, avec l'expression -(*(17, 14), 11).\n", "Pour la date 15-11-2017, le plus grand nombre premier obtenu est 43, avec l'expression +(17, +(11, 15)).\n", "Pour la date 16-11-2017, le plus grand nombre premier obtenu est 283, avec l'expression +(*(17, 16), 11).\n", "Pour la date 17-11-2017, le plus grand nombre premier obtenu est 23, avec l'expression -(17, -(11, 17)).\n", "Pour la date 18-11-2017, le plus grand nombre premier obtenu est 317, avec l'expression +(*(17, 18), 11).\n", "Pour la date 19-11-2017, le plus grand nombre premier obtenu est 47, avec l'expression +(17, +(11, 19)).\n", "Pour la date 20-11-2017, le plus grand nombre premier obtenu est 167, avec l'expression -(*(17, 11), 20).\n", "Pour la date 21-11-2017, le plus grand nombre premier obtenu est 19, avec l'expression %(*(17, 11), 21).\n", "Pour la date 22-11-2017, le plus grand nombre premier obtenu est 23, avec l'expression +(/(17, 11), 22).\n", "Pour la date 23-11-2017, le plus grand nombre premier obtenu est 29, avec l'expression -(17, -(11, 23)).\n", "Pour la date 24-11-2017, le plus grand nombre premier obtenu est 419, avec l'expression +(*(17, 24), 11).\n", "Pour la date 25-11-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, +(11, 25)).\n", "Pour la date 26-11-2017, le plus grand nombre premier obtenu est 431, avec l'expression -(*(17, 26), 11).\n", "Pour la date 27-11-2017, le plus grand nombre premier obtenu est 41, avec l'expression /(*(17, 27), 11).\n", "Pour la date 28-11-2017, le plus grand nombre premier obtenu est 487, avec l'expression +(*(17, 28), 11).\n", "Pour la date 29-11-2017, le plus grand nombre premier obtenu est 29, avec l'expression *(/(17, 11), 29).\n", "Pour la date 30-11-2017, le plus grand nombre premier obtenu est 521, avec l'expression +(*(17, 30), 11).\n", "Pour la date 01-12-2017, le plus grand nombre premier obtenu est 29, avec l'expression /(+(17, 12), 1).\n", "Pour la date 02-12-2017, le plus grand nombre premier obtenu est 41, avec l'expression +(17, *(12, 2)).\n", "Pour la date 03-12-2017, le plus grand nombre premier obtenu est 53, avec l'expression +(17, *(12, 3)).\n", "Pour la date 04-12-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(*(12, 4), 17).\n", "Pour la date 05-12-2017, le plus grand nombre premier obtenu est 199, avec l'expression -(*(17, 12), 5).\n", "Pour la date 06-12-2017, le plus grand nombre premier obtenu est 89, avec l'expression +(17, *(12, 6)).\n", "Pour la date 07-12-2017, le plus grand nombre premier obtenu est 211, avec l'expression +(*(17, 12), 7).\n", "Pour la date 08-12-2017, le plus grand nombre premier obtenu est 113, avec l'expression +(17, *(12, 8)).\n", "Pour la date 09-12-2017, le plus grand nombre premier obtenu est 17, avec l'expression /(17, /(12, 9)).\n", "Pour la date 10-12-2017, le plus grand nombre premier obtenu est 137, avec l'expression +(17, *(12, 10)).\n", "Pour la date 11-12-2017, le plus grand nombre premier obtenu est 199, avec l'expression +(*(17, 11), 12).\n", "Pour la date 12-12-2017, le plus grand nombre premier obtenu est 127, avec l'expression -(*(12, 12), 17).\n", "Pour la date 13-12-2017, le plus grand nombre premier obtenu est 233, avec l'expression +(*(17, 13), 12).\n", "Pour la date 14-12-2017, le plus grand nombre premier obtenu est 151, avec l'expression -(*(12, 14), 17).\n", "Pour la date 15-12-2017, le plus grand nombre premier obtenu est 197, avec l'expression +(17, *(12, 15)).\n", "Pour la date 16-12-2017, le plus grand nombre premier obtenu est 29, avec l'expression +(17, %(12, 16)).\n", "Pour la date 17-12-2017, le plus grand nombre premier obtenu est 277, avec l'expression -(*(17, 17), 12).\n", "Pour la date 18-12-2017, le plus grand nombre premier obtenu est 233, avec l'expression +(17, *(12, 18)).\n", "Pour la date 19-12-2017, le plus grand nombre premier obtenu est 311, avec l'expression -(*(17, 19), 12).\n", "Pour la date 20-12-2017, le plus grand nombre premier obtenu est 257, avec l'expression +(17, *(12, 20)).\n", "Pour la date 21-12-2017, le plus grand nombre premier obtenu est 269, avec l'expression +(17, *(12, 21)).\n", "Pour la date 22-12-2017, le plus grand nombre premier obtenu est 281, avec l'expression +(17, *(12, 22)).\n", "Pour la date 23-12-2017, le plus grand nombre premier obtenu est 379, avec l'expression -(*(17, 23), 12).\n", "Pour la date 24-12-2017, le plus grand nombre premier obtenu est 271, avec l'expression -(*(12, 24), 17).\n", "Pour la date 25-12-2017, le plus grand nombre premier obtenu est 317, avec l'expression +(17, *(12, 25)).\n", "Pour la date 26-12-2017, le plus grand nombre premier obtenu est 31, avec l'expression -(17, -(12, 26)).\n", "Pour la date 27-12-2017, le plus grand nombre premier obtenu est 307, avec l'expression -(*(12, 27), 17).\n", "Pour la date 28-12-2017, le plus grand nombre premier obtenu est 353, avec l'expression +(17, *(12, 28)).\n", "Pour la date 29-12-2017, le plus grand nombre premier obtenu est 331, avec l'expression -(*(12, 29), 17).\n", "Pour la date 30-12-2017, le plus grand nombre premier obtenu est 59, avec l'expression +(17, +(12, 30)).\n", "Pour la date 31-12-2017, le plus grand nombre premier obtenu est 389, avec l'expression +(17, *(12, 31)).\n" ] } ], "source": [ "tous = []\n", "for date in tous_les_jours():\n", " x, y, z = date_vers_nombre(date)\n", " p, expr = plus_grand_premier_2([x, y, z])\n", " tous.append(([x, y, z], p, expr))\n", " print(\"Pour la date {:%d-%m-%Y}, le plus grand nombre premier obtenu est {}, avec l'expression {}.\".format(date, p, expr))" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([30, 11, 17], 521, '+(*(17, 30), 11)')" ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "max(tous, key=lambda t: t[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Le plus grand nombre premier est donc pour le 30 novembre 2017, 521 obtenu avec $(17 \\times 30) + 11$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "----\n", "## Conclusions\n", "- C'était bien inutile.\n", "- Mais marrant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> C'est tout pour aujourd'hui les amis, [allez voir d'autres notebooks si vous êtes curieux !](https://github.com/Naereen/notebooks/).\n", "\n", "> [See this repository for other Python notebook doing numerical simulations](https://github.com/Naereen/notebooks/tree/master/simus/)." ] } ], "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.5.3" }, "notify_time": "5", "toc": { "colors": { "hover_highlight": "#DAA520", "running_highlight": "#FF0000", "selected_highlight": "#FFD700" }, "moveMenuLeft": true, "nav_menu": { "height": "322px", "width": "251px" }, "navigate_menu": true, "number_sections": true, "sideBar": true, "threshold": 4, "toc_cell": false, "toc_position": { "height": "617px", "left": "0px", "right": "1260px", "top": "117px", "width": "212px" }, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }