{"id":7663,"date":"2022-06-14T15:36:05","date_gmt":"2022-06-14T13:36:05","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=7663"},"modified":"2022-06-14T15:59:03","modified_gmt":"2022-06-14T13:59:03","slug":"creer-une-fonction-ifactors-en-python","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/","title":{"rendered":"Cr\u00e9er une fonction ifactors en Python"},"content":{"rendered":"\n<p>La fonction <em>ifactors<\/em> (que l&#8217;on peut trouver dans Xcas par exemple) peut \u00eatre impl\u00e9ment\u00e9e en Python.<\/p>\n\n\n\n<p>Elle permet d&#8217;obtenir la liste des diviseurs d&#8217;un nombre ainsi que leur exposant dans la d\u00e9composition ne produit de facteurs premiers.<\/p>\n\n\n\n<p>J&#8217;ai d\u00e9j\u00e0 trait\u00e9 le sujet de la d\u00e9composition en produits de facteurs premiers dans <a href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/07\/20\/pythontex-tools\/\" target=\"_blank\" rel=\"noreferrer noopener\">cet article<\/a> (parlant de pythontex) et dans <a href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/06\/27\/decomposition-en-produit-de-facteurs-premiers-sous-latex-avec-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">celui-ci<\/a> (parlant de \\(\\LaTeX\\)). Mais j&#8217;avais envie de me pencher sur la question algorithmique&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_83 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#ifactors_en_Python_une_premiere_approche\" >ifactors en Python: une premi\u00e8re approche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#ifactors_en_Python_une_variante_de_la_premiere_approche\" >ifactors en Python: une variante de la premi\u00e8re approche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#ifactors_en_Python_une_troisieme_approche\" >ifactors en Python: une troisi\u00e8me approche<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#Une_solution_pour_les_grands_nombres\" >Une solution pour les grands nombres<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#Amelioration_de_laffichage\" >Am\u00e9lioration de l&#8217;affichage<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ifactors_en_Python_une_premiere_approche\"><\/span>ifactors en Python: une premi\u00e8re approche<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>J&#8217;ai commenc\u00e9 par cr\u00e9er une fonction <em>prime<\/em>, retournant la liste des nombres premiers jusqu&#8217;\u00e0 <em>n<\/em> (nombre \u00e0 d\u00e9composer), puis une seconde nomm\u00e9e <em>ifactors<\/em> retournant un dictionnaire rempli des facteurs accompagn\u00e9s de leur exposant.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def prime(n):\n    P = [2]\n    \n    for i in range( 2 , n ):\n        prime_number = True\n        for j in P:\n            if i % j == 0:\n                prime_number = False\n\n        if prime_number == True:\n            P.append(i)\n            \n    return P\n\ndef ifactors(n):\n    D = {}\n    for k in prime(n):\n        if n != 1:\n            exposant = 0\n            while (n % k == 0):\n                exposant += 1\n                n \/= k\n            if exposant != 0:\n                D[k] = exposant        \n            \n    return D<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; ifactors(1025)\n{5: 2, 41: 1}<\/code><\/pre>\n\n\n\n<p>Cela me donne bien la d\u00e9composition \\( 1025 = 5^2 \\times 41 \\), mais \u00e7a se gatte pour:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; ifactors(3963960)<\/code><\/pre>\n\n\n\n<p>C&#8217;\u00e9tait en effet une id\u00e9e stupide que de vouloir construire la liste des nombres premiers inf\u00e9rieurs \u00e0 <em>n<\/em> pour l&#8217;objectif fix\u00e9.<\/p>\n\n\n\n<p>En effet, la fonction <em>prime(3963960)<\/em> est bien trop lente !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ifactors_en_Python_une_variante_de_la_premiere_approche\"><\/span>ifactors en Python: une variante de la premi\u00e8re approche<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Pour am\u00e9liorer cette premi\u00e8re approche, il serait bon de ne pas faire appel \u00e0 la liste des nombres premiers, puisque c&#8217;est elle qui fout la merde dans le bouzin&#8230; On va donc \u00eatre un peu bourrins et changer la ligne 17:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def ifactors(n):\n    D = {}\n    for k in range(2,n+1):\n        if n != 1:\n            exposant = 0\n            while (n % k == 0):\n                exposant += 1\n                n \/= k\n            if exposant != 0:\n                D[k] = exposant        \n            \n    return D\n<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; ifactors(3963960)\n{2: 3, 3: 2, 5: 1, 7: 1, 11: 2, 13: 1}<\/code><\/pre>\n\n\n\n<p>Le r\u00e9sultat appara\u00eet presque instantan\u00e9ment. C&#8217;est beaucoup mieux, m\u00eame si c&#8217;est bien bourrin de parcourir tous les nombres entiers de 2 \u00e0 <em>n<\/em>&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ifactors_en_Python_une_troisieme_approche\"><\/span>ifactors en Python: une troisi\u00e8me approche<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Voici une autre approche:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def ifactors(n):\n    D = {}\n    P = [ 2 ]\n    \n    while n!= 1:\n        # on construit la liste des nombres premiers jusqu'\u00e0 Racine_carr\u00e9e(n)\n        for i in range( P[-1]+1 , int(n**0.5) ): # on commence \u00e0 P[-1] histoire de pas recommencer du d\u00e9but\n            prime_number = True\n            for j in P:\n                if i % j == 0:\n                    prime_number = False\n\n            if prime_number == True:\n                P.append(i)\n         \n        # On cherche s'il y a un diviseur \u00e0 n\n        for k in P:\n            exposant = 0\n            while (n % k == 0):\n                exposant += 1\n                n \/= k\n            if exposant != 0:\n                D[k] = exposant\n        \n            \n    return D<\/pre>\n\n\n\n<p>Elle fonction plut\u00f4t bien pour l&#8217;exemple pr\u00e9c\u00e9dent, mais quand on augmente le nombre, l\u00e0, ce n&#8217;est plus la m\u00eame chose&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Une_solution_pour_les_grands_nombres\"><\/span>Une solution pour les grands nombres<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Les plus exp\u00e9riment\u00e9\u00b7e\u00b7s auront vu que dans la logique des scripts pr\u00e9c\u00e9dents, il y avait un probl\u00e8me \u00e0 l&#8217;origine du probl\u00e8me de lenteur. Avec la m\u00e9thode pr\u00e9c\u00e9dente, on y est presque&#8230;<\/p>\n\n\n\n<p>Pour \u00e9viter les probl\u00e8mes de lenteur, il faudrait \u00e9viter de stocker des valeurs dans une liste qui ne sert \u00e0 rien.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def ifactors(n):\n    D = {}\n    i = 2\n    \n    while n > 1:\n        exposant = 0\n        while n%i == 0:\n            exposant += 1\n            n = n\/i\n        if exposant != 0:\n            D[i] = exposant\n            \n        i = i + 1\n\n    return D<\/pre>\n\n\n\n<p>Cette fonction suffit largement&#8230; et en plus, elle est bien plus courte que les pr\u00e9c\u00e9dentes!<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; ifactors(764104821480)\n{2: 3, 3: 2, 5: 1, 7: 1, 11: 2, 13: 1, 17: 2, 23: 1, 29: 1}<\/code><\/pre>\n\n\n\n<p>Temps d\u2019ex\u00e9cution n\u00e9gligeable&#8230; car il n&#8217;y a que des divisions!<\/p>\n\n\n\n<p>Cette solution avait d&#8217;ailleurs \u00e9t\u00e9 propos\u00e9e dans mon <a href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/07\/20\/pythontex-tools\/\">article<\/a> sur pythontex cit\u00e9 au d\u00e9but.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Amelioration_de_laffichage\"><\/span>Am\u00e9lioration de l&#8217;affichage<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Comme je suis du genre plut\u00f4t perfectionniste, j&#8217;ai maintenant envie d&#8217;am\u00e9liorer l&#8217;affichage.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def ifactors(n , decomp = False):\n    D = {}\n    i = 2\n    \n    while n > 1:\n        exposant = 0\n        while n%i == 0:\n            exposant += 1\n            n = n\/i\n        if exposant != 0:\n            D[i] = exposant\n            \n        i = i + 1\n\n    if decomp == False:\n        return D\n    else:\n        L_exp = [ 0x2070, 0x00B9, 0x00B2, 0x00B3, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079 ]\n        r = ''\n        for prime,exposant in D.items():\n            exposant = str(exposant)\n            for i in exposant:\n                exposant = exposant.replace(i,chr(L_exp[int(i)]))\n            if r != '':\n                r += ' \u00d7 '\n            r += str(prime) + exposant\n            \n        return r<\/pre>\n\n\n\n<p>J&#8217;ai ajout\u00e9 une option \u00e0 la fonction qui permet d&#8217;obtenir un affichage de la d\u00e9composition en produits de facteurs premier plus lisible:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; ifactors(764104821480 , True)\n2\u00b3 \u00d7 3\u00b2 \u00d7 5\u00b9 \u00d7 7\u00b9 \u00d7 11\u00b2 \u00d7 13\u00b9 \u00d7 17\u00b2 \u00d7 23\u00b9 \u00d7 29\u00b9<\/code><\/pre>\n\n\n\n<p><strong><em>Remarque:<\/em><\/strong> la commande <em>ifactor<\/em> (sans le &#8220;s&#8221; \u00e0 la fin) de Xcas permet d&#8217;obtenir cette \u00e9criture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La fonction ifactors (que l&#8217;on peut trouver dans Xcas par exemple) peut \u00eatre impl\u00e9ment\u00e9e en Python. Elle permet d&#8217;obtenir la liste des diviseurs d&#8217;un nombre ainsi que leur exposant dans la d\u00e9composition ne produit de facteurs premiers. J&#8217;ai d\u00e9j\u00e0 trait\u00e9 le sujet de la d\u00e9composition en produits de facteurs premiers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":7664,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,5],"tags":[124,101],"class_list":["post-7663","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mathematiques","category-python","tag-nombres-premiers","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cr\u00e9er une fonction ifactors en Python - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"La fonction ifactors, que l&#039;on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cr\u00e9er une fonction ifactors en Python - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"La fonction ifactors, que l&#039;on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2022-06-14T13:36:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-14T13:59:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Cr\u00e9er une fonction ifactors en Python\",\"datePublished\":\"2022-06-14T13:36:05+00:00\",\"dateModified\":\"2022-06-14T13:59:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/\"},\"wordCount\":473,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/head-articles-python-ifactors-nombres-premiers.jpg\",\"keywords\":[\"nombres premiers\",\"python\"],\"articleSection\":[\"Math\u00e9matiques\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/\",\"name\":\"Cr\u00e9er une fonction ifactors en Python - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/head-articles-python-ifactors-nombres-premiers.jpg\",\"datePublished\":\"2022-06-14T13:36:05+00:00\",\"dateModified\":\"2022-06-14T13:59:03+00:00\",\"description\":\"La fonction ifactors, que l'on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/head-articles-python-ifactors-nombres-premiers.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/head-articles-python-ifactors-nombres-premiers.jpg\",\"width\":740,\"height\":198,\"caption\":\"ifactors python nombres premiers\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2022\\\/06\\\/14\\\/creer-une-fonction-ifactors-en-python\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cr\u00e9er une fonction ifactors en Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cr\u00e9er une fonction ifactors en Python - Mathweb.fr","description":"La fonction ifactors, que l'on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/","og_locale":"fr_FR","og_type":"article","og_title":"Cr\u00e9er une fonction ifactors en Python - Mathweb.fr","og_description":"La fonction ifactors, que l'on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/","og_site_name":"Mathweb.fr","article_published_time":"2022-06-14T13:36:05+00:00","article_modified_time":"2022-06-14T13:59:03+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Cr\u00e9er une fonction ifactors en Python","datePublished":"2022-06-14T13:36:05+00:00","dateModified":"2022-06-14T13:59:03+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/"},"wordCount":473,"commentCount":3,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg","keywords":["nombres premiers","python"],"articleSection":["Math\u00e9matiques","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/","url":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/","name":"Cr\u00e9er une fonction ifactors en Python - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg","datePublished":"2022-06-14T13:36:05+00:00","dateModified":"2022-06-14T13:59:03+00:00","description":"La fonction ifactors, que l'on peut trouver dans Xcas, peut \u00eatre impl\u00e9ment\u00e9e en Python. Nous allons voir une mani\u00e8re de le faire.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/06\/head-articles-python-ifactors-nombres-premiers.jpg","width":740,"height":198,"caption":"ifactors python nombres premiers"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2022\/06\/14\/creer-une-fonction-ifactors-en-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Cr\u00e9er une fonction ifactors en Python"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/7663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=7663"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/7663\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/7664"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=7663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=7663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=7663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}