td7_2h_MapleListes

publicité
TD7
Calcul numérique (avec Maple)
Licence 1 SMS Math Info, Math Physique 2006-2007
Liste et liste de listes
Question 1 :
On appelle nombres premiers jumeaux les couples (p, p+2) où p et p+2 sont premiers.
a) Ecrire une procédure, que l’on nommera twin, qui prend comme argument un entier x et
qui retourne la liste de couples (liste de listes) de nombre premiers jumeaux inférieurs
ou égaux à x.
b) Ecrire une procédure qui prend en paramètre une liste de couples (liste de listes) de
nombres premiers jumeaux et qui l’affiche.
Question 2 :
Un nombre parfait est un nombre égal à la somme de tous ses diviseurs, par exemple 6 =
1+2+3.
a) Ecrire une procédure qui détermine si un nombre entier positif donné est parfait ou non.
La procédure prendra en paramètre le nombre n et retournera vrai si ce nombre est parfait.
Pour tester la “divisibilité” de a par b, on utilisera l’expression booléenne suivante :
a mod b = 0 ;
Remarque : la commande mod donne le reste de la division euclidienne de a par b.
b) Ecrire une procédure qui retourne la liste des nombres parfaits sur l’intervalle [1, 1000].
Question 3 :
a) Ecrire une procédure qui retourne le nombre de nombres premiers sur un intervalle [a, b]
b) Ecrire une procédure qui comptabilise le nombre de nombres premiers sur les intervalles
[0, 999], [1000, 1999], … . Cette procédure retournera une liste de couples (liste de listes)
où chaque couple est :
- le numéro d’intervalle,
- et l’entier comptabilisant le nombre de nombres premiers sur l’intervalle.
c) Afficher sur un graphique les points 2D obtenus précédemment de sorte d’obtenir un
graphique comme celui de la figure ci dessous.
Question 4 :
Le crible d’Erathostène est un algorithme permettant d’établir la liste des nombres premiers
inférieurs à un entier donné n.
Algorithme :
A partir de la liste L des nombres entiers allant de 1 à n, on élimine itérativement les multiples
de 2 (sauf 2), puis les multiples de 3 (sauf 3), etc. jusqu’aux multiples de n-1 (sauf n-1).
Nous allons mettre en œuvre cet algorithme en utilisant MAPLE comme langage de
programmation. Pour ce faire, nous considérons un tableau MAPLE de n booléens
initialement tous égaux à true. L’élimination des nombres multiples (évoqués précédemment)
consiste à affecter les booléens correspondant à false. A la fin de l’algorithme seuls les
nombres premiers seront marqués par un true.
a) Ecrire une fonction crible qui retourne un tableau de n booléens tels que l’on ait true dans
chaque case i du tableau si le nombre i est premier. Il faut bien entendu utiliser
l’algorithme du Crible d’Erathostène.
b) Ecrire une fonction qui prend en entrée le tableau précédent et affiche les nombres
premiers (à partir du tableau).
Téléchargement