Un nombre N est dit super-pairplus s’il vérifie les trois conditions suivantes :
- Condition 1 : N est pair
- Condition 2 : N est formé uniquement par des chiffres pairs
- Condition 3 : tous les diviseurs de N autre que 1 sont des entiers pairs.
Exemples :
- N = 64 est un entier super-pairplus car 64 vérifie les trois conditions :
• Condition 1 : 64 est pair
• Condition 2 : 64 est formé uniquement par des chiffres pairs (6 et 4)
• Condition 3 : les diviseurs de 64 autre que 1 (2, 4, 8, 16, 32 et 64) sont des entiers pairs.
- N = 28 n’est pas un entier super-pairplus car une des trois conditions (condition 3) n’est pas vérifiée :
• Condition 1 : 28 est pair
• Condition 2 : 28 est formé uniquement par des chiffres pairs (2 et 8)
• Condition 3 : les diviseurs de 28 autre que 1 (2, 4, 7, 14 et 28) ne sont pas tous des entiers pairs. En effet, 7 est impair
Pour vérifier si un entier naturel N (N > 0) est un nombre super-pairplus ou non, on propose un algorithme et un programme Python.
Dans cet algorithme, On va utiliser 3 fonctions :
Algorithme du programme Principal
1 2 3 4 5 6 7 8 9 |
Algorithme nombre_super-pairplus Debut n<-saisie_entier() Si (n mod 2 =0) et verif_chiffrespaires(n) et verif_diviseurspaires(n) faire Ecrire(n+' est super-pairplus') Sinon Ecrire(n+" n'est pas super-pairplus") Fin si Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La fonction saisie_entier
Cette fonction saisit un entier > 0.
1 2 3 4 5 6 7 8 9 10 |
fonction saisie_entier():entier Début Ecrire("donner un entier >= 1) Lire(n) Tant que (n<1) faire Ecrire("donner un entier >= 1) Lire(n) Fin tant que retourner n Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
n | entier |
La fonction verif_chiffrespaires
Cette fonction vérifie que les chiffres qui composent le nombre sont pairs.
1 2 3 4 5 6 7 8 9 10 |
fonction verif_chiffrespaires(n:entier):booleen Début ch<-Convch(n) i<-0 # verifer que les chiffres qui composent le nombre sont pairs Tant que (i<long(ch)-1) et (Valeur(ch[i]) mod 2=0) alors i<-i+1 Fin tant que retourner (Valeur(ch[i]) mod 2==0) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
ch | chaîne des caractères |
La fonction verif_diviseurspaires
Cette fonction vérifie que tous les diviseurs de n autre que 1 sont des entiers pairs.
1 2 3 4 5 6 7 8 9 10 11 12 |
fonction verif_diviseurspaires(n:entier):booleen Début i<-2 chiffrepaire<-Vrai Tant que (i<(n div 2)+1) et (chiffrepaire) faire # verifier si le diviseur est pair Si (n mod i=0) et (i mod 2 !=0) alors chiffrepaire<-Faux i<-i+1 Fin tant que retourner (i=(n div 2)+1) Fin |
Déclaration des objets
Objet | Type / Nature |
---|---|
i | entier |
chiffrepaire | booleen |
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 32 |
def saisie_entier(): n=int(input("donner un entier >0: ")) while (n<1): n=int(input("donner un entier >0: ")) return n def verif_chiffrespaires(n): ch=str(n) i=0 # verifer que les chiffres qui composent le nombre sont pairs while (i<len(ch)-1) and (int(ch[i]) % 2==0): i=i+1 return (int(ch[i]) % 2==0) def verif_diviseurspaires(n): i=2 chiffrepaire=True while (i<(n//2)+1) and (chiffrepaire): # verifier si le diviseur est pair if (n % i==0) and (i % 2 !=0) : chiffrepaire=False i=i+1 return (i==(n//2)+1) #programme principal n=saisie_entier() if (n % 2 ==0) and verif_chiffrespaires(n) and verif_diviseurspaires(n) : print(str(n)+' est super-pairplus') else: print(str(n)+" n'est pas super-pairplus") |
Exécution du programme:
Pour créer une application en Python et Designer QT qui saisit un nombre >0 et vérifie s'il est super-pairplus ou non , on va suivre ces étapes:
a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.
b- Ajoutez ces widgets:
QLineEdit
nommé 'n' pour entrer un entier >0.
QPushButton
nommé 'verifier_bt' pour vérifier si n est un nombre super-pairplus
QLabel
nommé 'msg' pour afficher des messages d'erreur et le résultat de la vérification du nombre.
Enregistrez le fichier avec l'extension .ui
, par exemple nombre-super-pairplus-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 32 33 34 35 36 37 38 39 40 41 42 |
from PyQt5.uic import loadUi from PyQt5.QtWidgets import QApplication app = QApplication([]) windows = loadUi ("nombre-super-pairplus-interface.ui") def verif_chiffrespaires(n): ch=str(n) i=0 # verifer que les chiffres qui composent le nombre sont pairs while (i<len(ch)-1) and (int(ch[i]) % 2==0): i=i+1 return (int(ch[i]) % 2==0) def verif_diviseurspaires(n): i=2 chiffrepaire=True while (i<(n//2)+1) and (chiffrepaire): # verifier si le diviseur est pair if (n % i==0) and (i % 2 !=0) : chiffrepaire=False i=i+1 return (i==(n//2)+1) def play(): windows.msg.clear() n = int(windows.n.text()) if n > 0 : if (n % 2 ==0) and verif_chiffrespaires(n) and verif_diviseurspaires(n) : windows.msg.setText(str(n)+' est est super-pairplus') else: windows.msg.setText(str(n)+" n'est pas est super-pairplus") else: windows.msg.setText(" Veuillez introduire un nombre > 0 ") windows.verifier_bt.clicked.connect(play) windows.show() app.exec_() |
Exécution du programme
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