Écrire un programme qui permet d'afficher les nombres premiers entre deux entiers n et m (n < m) . Exemple : pour n=4 et m=13, le programme affiche ces entiers paires : 5, 7, 11 et 13
Pour écrire un algorithme qui affiche les nombres premiers entre deux entiers nn et mm (avec n
1- Vérifier que chaque nombre dans l'intervalle [n,m] est premier :
Un nombre premier est un nombre qui n'a pas d'autres diviseurs que 1 et lui-même.
2- Afficher les nombres premiers trouvés.
Voici l'algorithme en pseudo-code :
a- Lire les valeurs de et m
b- Parcours de l'intervalle pour chaque nombre de n à m: Si le nombre est premier, l'afficher
Vérification de primalité Un nombre est premier si :
Il est supérieur à 1
Il n'a pas de diviseur autre que 1 et lui-même (vérifier les divisibilités de 2 à n div 2)
Dans cet algorithme, On va utiliser deux procédures saisie et afficher_premier :
Algorithme du programme principal
1 2 3 4 5 6 7 |
Algorithme nombres_paires Debut saisie() Pour i de n à m faire afficher_premier(i) Fin pour Fin |
Déclaration des objets
Objet | Type / Nature |
n | entier |
m | entier |
i | entier |
La procédure saisie
La procédure saisie lit les valeurs de n et m tel que n < m.
1 2 3 4 5 6 7 8 9 10 11 |
Procédure saisie Début écrire ('donner n') lire(n) écrire ('donner m tel que m > ',n) lire(m) Tant que (n >= m) Faire écrire ('donner m tel que m > ',n) lire(m) Fin tant que Fin |
La procédure afficher_premier
La procédure afficher_premier qui affiche un nombre s'il est premier.
1 2 3 4 5 6 7 8 9 10 |
Procedure afficher_premier (a: entier) Début i<-2 tant que (i < a div 2) et ( a mod i !=0 ) faire i<-i+1 fin tant que si ( a mod i ) != 0 alors ecrire(a) finsi Fin |
Objet | Type / Nature |
i | entier |
Cette procédure utilise la boucle 'Tant que' pour parcourir les nombres de 2 à a div 2 .
Pour chaque i de 2 à n div 2, la procédure vérifie si a est divisible par i (a mod i = 0
).
A la fin de la boucle Tant que, si (a mod i !=0) le nombre a est un nombre premier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
def saisie() : global n,m n=int(input("donner un entier n ")) m=int(input("donner un entier m tq m > "+str(n))+' ') while(m<=n) : m=int(input("donner un entier m tq m > "+str(n))+' ') def test_premier(a): i=2 while (i< a // 2) and ((a % i)!=0): # test si a est premier ou non i=i+1 if (a % i)!=0 : # si a est premier print(a) # afficher l'entier a saisie() for i in range (n,m+1) : # rechercher les nombres premiers entre n et m test_premier(i) |
Exécution du programme
Pour créer une application en Python qui afficher les entiers premiers entre deux entiers m et n en utilisant Qt Designer pour l'interface graphique, suivez ces étapes :
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez des widgets:
QLineEdit
nommé 'n' pour entrer l'entier n .
QLineEdit
nommé 'm' pour entrer l'entier m .
QLabel
nommé 'msg' pour afficher un message d'erreur si n>=m.
QPushButton
nommé 'paire_bt' pour rechercher et afficher les entiers paires entre n et m.
QLabel
nommé 'liste_premiers_label' pour afficher les entiers paires entre n et m.
Enregistrez le fichier avec l'extension .ui
, par exemple ex4-interface.ui
.
Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#importation des modules nécessaires from PyQt5.QtWidgets import QApplication from PyQt5 import uic application = QApplication([]) window = uic.loadUi("ex4-interface.ui") def test_premier(a): i=2 while (i< a // 2) and ((a % i)!=0): # test si a est premier ou non i=i+1 return (a % i)!=0 # retourne True si a est premier et False dans le cas contraire def afficher_premiers(): window.liste_premiers_label.setText('') n=int(window.n.text()) m=int(window.m.text()) if m<=n : window.msg.setText('saisir un entier m tq m>n') window.m.setText(' ') else : liste_premiers=''; for i in range (n,m+1): # parcourir les entiers entre n et m if test_premier(i) : # test si i est un entier premier liste_premiers=liste_premiers+str(i)+' ' # ajouter i à la liste des entiers premiers window.liste_premiers_label.setText(liste_premiers) # afficher les entiers paires # Si on clique sur le bouton premiers_bt, le programme appelle la procedure afficher_premiers window.premiers_bt.clicked.connect(afficher_premiers) window.show() application.exec() |
Exécution du programme
En suivant ces étapes, vous pourrez créer une application PyQt5 qui lit deux entiers et affiche les entiers premiers entre eux.
Vous pouvez voir aussi :
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info