Devoir Maison sur feuille.
Pour le 3 novembre.
Informatique Pour Tous - 2016/2017
On rappelle qu’un entier naturel est premier lorsqu’il a exactement
deux diviseurs : 1 et lui-mˆeme. Si aet bsont deux entiers, on rappelle que
a // b et a%bdonnent le quotient et le reste de la division euclidienne de
apar b, respectivement.
Apr`es avoir import´e le module math par la commande from math import *,
on pourra utiliser la fonction floor qui donne la partie enti`ere d’un r´eel en
argument.
1. (a) ´
Ecrire une fonction divise qui prend deux entiers naturels a, b
en arguments avec anon nul et renvoie True si adivise b,False
sinon.
(b) ´
Ecrire une fonction diviseurs qui prend un entier naturel non
nul nen argument et renvoie la liste des diviseurs de n.
(c) ´
Ecrire une fonction premier qui prend un nombre en argument
et renvoie True si ce nombre est premier, False sinon.
(d) ´
Ecrire une fonction tous_premiers qui prend un entier naturel
nen argument et renvoie la liste de tous les nombres premiers
inf´erieurs ou ´egaux `a n.
2. Le crible d’´
Eratosth`ene est un algorithme beaucoup plus efficace pour
obtenir la liste des nombres premiers inf´erieurs `a un entier n.
On part d’une liste Lde taille n+ 1 dont tous les ´el´ements sont des
bool´eens de valeur True. On modifie la valeur de L[0] et L[1] `a
False. Puis pour chaque i entre 2 et n, si L[i] contient True, alors
pour chaque kmultiple de iet strictement sup´erieur `a i(quel est le
premier ? ), on modifie L[k] en False.
(a) ´
Ecrire une fonction eratosthene qui prend un nombre nen ar-
gument et renvoie la liste Ld´ecrite ci-dessus.
(b) En utilisant la fonction eratosthene, ´ecrire une fonction tous_premiers2
qui prend un entier naturel nen argument et renvoie la liste de
tous les nombres premiers inf´erieurs ou ´egaux `a n.
3. Nous nous ineressons maintenant au calcul du PGCD en Python.
On rappelle l’algorithme d’Euclide permettant de calculer le PGCD
1
de aet b:
Tant que b > 0 :
r= reste de la division de apar b
a=b
b=r
Renvoyer a
´
Ecrire une fonction pgcd impl´ementant l’algorithme d’Euclide en Py-
thon.
4. Nous allons utiliser une autre m´ethode de calcul de PGCD, bas´ee sur
la d´ecomposition en facteurs premiers.
(a) ´
Ecrire une fonction decomposition ayant un argument net qui
renvoie la liste Ldes diviseurs premiers de navec multiplicit´es. On
pourra stocker dans chaque ´el´ement de Lune liste compos´ee de
deux entiers naturels : le diviseur et sa multiplicit´e. Par exemple
decomposition(50) devra renvoyer la liste [[2, 1], [5, 2]],
puisque 50 = 21×52.
(b) En d´eduire une autre fonction pgcd2 renvoyant le PGCD de deux
entiers naturels en argument, en utilisant decomposition.
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !