TD n°2 - Algorithmique Arithmétique
Nombres premiers
Thèmes
Arithmétique (nombres premiers et premiers jumeaux ), tests de primalité, fonctions renvoyant une valeur booléenne, test dans une boucle avec une fonction booléenne, liste, ajouter un élément à une liste.
Exercice 1. Une liste de nombres premiers
Dans le TD n°1 d’arithmétique, on a vu plusieurs tests de primalité dont celui-ci :
def prem(n) :
’ ’ ’Renvoie True si l’entier est premier et False sinon’ ’ ’ assert n>=2
d=2
whiled×d<=n: ifn%d==0 :
return False d=d+1 return True
Code Python
Fonction prem(n) assertn>=2 d←2
Tant qued×d≤n Faire Siidivise n
Renvoyer False d←d+1 Fin Tant que Renvoyer True
Pseudo Code
On cherche à écrire une fonctionli stepr em(n), de paramètren, qui Renvoie le liste des nombres premiers qui sont infé- rieurs ou égaux àn. On va utiliser une liste que l’on note L.
• L = [ ] : crée une liste vide
• L . append(i) : ajoute un élément i en fin de la liste L.
Remarque : En anglais, "append" signifie "joindre" ou "apposer".
Liste et L.append(i)
1. Compléter cet algorithme afin qu’il Renvoie la liste des des nombres premiers qui sont inférieurs ou égaux àn.
def listeprem(n) :
’ ’ ’Renvoie la liste de nombres premiers inférieurs ou égaux à n’ ’ ’ assert(n>=2)
L = [ ]
foriin range· · · ·: #À compléter.
if· · · ·: #À compléter.
L.append(i) #ajoute un élément i en fin de la liste L.
return L
Code Python
TD n°2 - Algorithmique - Arithmétique Nombres premiers
Exercice 2. Nombres premiers jumeaux
Le couple (2, 3) est le seul couple de nombres premiers consécutifs.
Si l’on omet le couple (2, 3), la plus petite distance possible entre deux nombres premiers est 2; deux nombres premiers jumeaux sont ainsi deux nombres premiers impairs consécutifs.
Nombres Premiers Jumeaux
2. Écrire une fonctionjumeaux(n), de paramètren, qui Renvoie la liste des couples d’entiers premiers jumeaux infé- rieurs ou égaux àn.
Par exemplejumeaux(100)doit revoyer dans la console :
=> [(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73)]
Exercice 3. Nombre de Nombres premiers jumeaux inférieur à n
La longueur d’une liste L s’obtient par l’instruction len(L).
Par exemple la longueur de la liste renvoyée par jumeaux(100) est 8 car il y a 8 couples d’entiers dans cette liste. On a len(jumeaux(100))=8
Longueur d’une liste
3. Écrire une fonctionnbjumeaux(n), de paramètren, qui Renvoie le nombre de couples d’entiers premiers jumeaux inférieurs ou égaux àn.
• Par exemple :
> nbjumeaux(10**5)
=> 1224
> nbjumeaux(10**6)
=> 8169
La conjecture des nombres premiers jumeaux affirme qu’il existe une infinité de nombres pre- miers jumeaux :
Il existe une infinité de nombres premiers p tels que p + 2 soit aussi premier.
Cette conjecture est le 8èmedes problèmes de Hilbert, énoncés par le mathématicien David Hil- bert (1862-1943) en 1900. Bien que la plupart des chercheurs en théorie des nombres pensent que cette conjecture est vraie, elle n’a jamais été démontrée.
Remarque
[ Fin du devoir \
www.math93.com / M. Duffaud 2/2