{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![En tête general](img/En_tete_general.png)\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", "![Grille](img/Crible_Eratosthene_grille.png)\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", "\n", "\n", "► Renvoyer la liste des nombres qui ont été entourés.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.1. Suivre la vidéo ci-dessous pour appliquer le crible d'Eratosthène.__\n", "\n", "