Solution Exercice 11 : Nombres Chen en Python

Exercice 11

Un nombre de Chen est un nombre premier, nommée ainsi relativement au nom du mathématicien chinois Chen Jingrun. Un nombre premier p est appelé un nombre premier de Chen si p+2 est soit un autre nombre premier, soit le produit de deux nombres premiers distincts (c'est-à-dire un nombre semi-premier).
    1) - Ecrire un programme en langage Python sous forme de fonction test_chen(n) qui prends en argument un entier n et renvoie True si l'entier n est premier de chen et False si non. (On pourra utiliser l'exercice précédent Exercice 10)
    2) - Ecrire un programme en Python sous forme de fonction nommée list_chen(n) qui prends en argument un entier n et renvoie la liste des nombres premiers de Chen p<=n.
Exemple: si n = 45, l'algorithme renvoie la liste [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41] (43 est un nombre premier qui n'est pas de Chen)

Solution

Pour résoudre cet exercice, nous devons d’abord rappeler qu’un nombre premier de Chen est un nombre premier n tel que n+2 soit soit un nombre premier, soit un produit de deux nombres premiers (appelé semi-premier). Pour traduire cette définition en programme Python, nous créons d’abord la fonction est_premier(n) qui vérifie si un nombre est premier. Ensuite, nous utilisons la fonction est_produit_de_premiers(n) qui permet de tester si un entier peut être écrit comme produit de deux nombres premiers. Enfin, la fonction principale test_chen(n) commence par vérifier si n est premier ; si ce n’est pas le cas, elle renvoie False. Si n est premier, elle calcule n+2 et renvoie True si n+2 est premier ou s’il est un produit de deux nombres premiers. Cette démarche permet de déterminer si un nombre vérifie la définition mathématique d’un nombre premier de Chen.

Questionv1:

Question 2:

 

 

Younes Derfoufi
CRMEF OUJDA




Leave a Reply

Your email address will not be published. Required fields are marked *