Entier hazard – Bac Pratique 2014 [ Algorithme + Python ]

Algo et Python 19-08-24
36 0

Travail demandé

Un nombre Hazard est un entier qui est divisible par la somme de ses chiffres.

Exemple : 198 est un nombre Hazard.

En effet 198 est divisible par la somme de ses chiffres qui est 18 (1+9+8=18).

Travail demandé :

Ecrire un programme Pascal qui permet de chercher et d’afficher tous les nombres hazard de l’intervalle [n,m] (avec 100 ≤ n < m) et dont le prédécesseur de chacun est premier. N.B : On rappelle qu’un nombre est dit premier s’il est divisible uniquement par 1 et par lui-même. Par définition, 1 n’est pas considéré comme étant un nombre premier. Exemple : Pour n=100 et m=150, le programme affiche les nombres Hasards suivants :

102 car 102 est Hazard et son prédécesseur 101 est un nombre premier

108 car 108 est Hazard et son prédécesseur 107 est un nombre premier

110 car 110 est Hazard et son prédécesseur 109 est un nombre premier

114 car 114 est Hazard et son prédécesseur 113 est un nombre premier

132 car 132 est Hazard et son prédécesseur 131 est un nombre premier

140 car 140 est Hazard et son prédécesseur 139 est un nombre premier

150 car 150 est Hazard et son prédécesseur 149 est un nombre premier

Solution Algorithmique

Pour résoudre ce problème, l'algorithme doit accomplir plusieurs tâches : vérifier si un nombre est un "nombre Hazard", vérifier si son prédécesseur est un nombre premier, et parcourir tous les nombres dans l'intervalle [n, m]. Voici le principe de l'algorithme détaillé.

Étapes de l'algorithme :

1. Initialisation : Lire les valeurs de n et m (avec 100 ≤ n < m). 2. Boucle sur l'intervalle [n, m] :

Pour chaque entier i dans l'intervalle [n, m] :

3. Vérifier si i est un nombre Hazard :

Calculer la somme des chiffres de i.

Vérifier si i est divisible par cette somme.

4. Vérifier si le prédécesseur i-1 est un nombre premier :

Si i-1 est premier, on affiche i

Dans cet algorithme, On va utiliser deux fonctions et deux procédures :

Déclaration des objets

Objet

Type / Nature

n

entier

m

entier

La procédure saisie

Cette procédure lit les valeurs de n et m (avec 100 ≤ n < m).

Déclaration des objets

Objet

Type / Nature

n

entier

m

entier

La fonction test_premier

Cette fonction teste si un entier n'a aucun diviseur autre que 1 et lui-même en parcourant tous les nombres de 2 à n div 2.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction test_hazard

Cette fonction calcule la somme des chiffres de i, et vérifier si i est divisible par cette somme.

Déclaration des objets

Objet

Type / Nature

i

entier

s

entier

d

entier

ch

chaine des caracteres

La procédure afficher_hazard

Cette procédure affiche tous les nombres hazard de l’intervalle [n,m] (avec 100 ≤ n < m) et dont le prédécesseur de chacun est premier.

Déclaration des objets

Objet

Type / Nature

i

entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour rechercher et afficher tous les nombres hazard de l’intervalle [n,m] (avec 100 ≤ n < m) et dont le prédécesseur de chacun est premier.  en utilisant Qt Designer pour l'interface graphique, suivez ces étapes :

1- Créer l'interface graphique avec Qt Designer

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 n >=100.

QLineEdit nommé 'm' pour entrer un entier m >n.

QPushButton nommé 'hazard_bt' pour exécuter le module afficher_hazard.

QLabel nommé 'msg' pour afficher un message d'erreur.

QPushButton nommé 'hazard_bt' pour exécuter le module afficher_hazard.

QLabel nommé 'resultat' pour afficher tous les nombres hazard de l’intervalle [n,m].

Enregistrez le fichier avec l'extension .ui, par exemple entier-hazard-interface.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

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.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info