{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "*(C) Copyright Franck CHEVRIER 2019-2020 http://www.python-lycee.com/*\n", "\n", " Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# PGCD par l'algorithme d'Euclide et coefficients de Bezout (corrigé) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. Algorithme d'Euclide" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On considère deux entiers naturels $a$ et $b$ non nuls, dont on cherche à déterminer le PGCD.\n", "\n", "On pose $\\color{red}{a_0=a}$ et $\\color{blue}{b_0=b}$ puis on considère la suite des divisions euclidiennes suivantes, réitérées tant que le reste $r_n$ n'est pas nul.\n", "\n", "$a_0=b_0q_0+r_0$\n", "\n", "$ \\;\\;\\;\\; \\swarrow \\;\\;\\;\\;\\;\\; \\swarrow$\n", "\n", "$a_1=b_1q_1+r_1$\n", "\n", "$ \\;\\;\\;\\; \\swarrow \\;\\;\\;\\;\\;\\; \\swarrow$\n", "\n", "$a_2=b_2q_2+r_2$\n", "\n", "...\n", "\n", "$a_{n-1}=b_{n-1}q_{n-1}+r_{n-1}$\n", "\n", "$ \\;\\;\\;\\; \\swarrow \\;\\;\\;\\;\\;\\; \\swarrow$\n", "\n", "$a_n=b_nq_n+r_n$\n", "\n", "...\n", "\n", "\n", "\n", "\n", "\\begin{array}{} \\color{red}{a_0} &=& \\color{blue}{b_0} q_0 & + & \\color{green}{r_0} \\\\ \\; & \\color{blue}\\swarrow & \\; & \\color{green}\\swarrow \\\\ a_1 &=& b_1 q_1 & + & r_1 \\\\ \\end{array}\n", "\n", "\n", "\n", "\n", "\n", "\n", "\\begin{array}{} a_0 &=& b_0 q_0 & + & r_0 \\\\ \\; & \\swarrow & \\; & \\swarrow \\\\ a_1 &=& b_1 q_1 & + & r_1 \\\\ \\end{array}\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "_1. \n", "\n", "\n", "\n", "\n", "\n", "\n", "où on a :\n", "Pour $n>=0$ ; $q_n$ et $r_n$ sont respectivement le quotient et le reste de la division de $a_n$ par $b_n$\n", "Pour $n>=1$ ; $a_n=b_{n-1}$ et $b_n=r_{n-1}$\n", "\n", "\n", "\n", "\n", "\n", "\n", "pour tout $n\\in\\mathbb{N^*}$, on pose $a_n=b_{n-1}$ et $b_n$ le rest\n", "\n", "\n", "\n", "Un autre exemple :\n", "N\n", "⊂\n", "Z\n", "⊂\n", "D\n", "⊂\n", "Q\n", "⊂\n", "R\n", "⊂\n", "C\n", "\n", "\n", "\n", "\n", "On dispose ci-dessous d’une grille donnant les 101 premiers nombres entiers.\n", "\n", "\n", "\n", "Le but est de barrer tous les nombres de la grille qui ne sont pas premiers. On considère l’algorithme ci-dessous.\n", "\n", "► On dispose de la liste des nombres entiers de 0 à 100.\n", "\n", "► Barrer 0 et 1.\n", "\n", "► Parcourir dans l’ordre tous les entiers k de 2 à 100. Si le nombre k n’est pas barré :\n", "\n", "