Les nombres déficients et abondants – Bac Pratique 2014 [ Algorithme + Python ]

Algo et Python 21-08-24
196 0

Sujet bac informatique pratique 2014 (Bac scientifique)

Un nombre est dit abondant s’il est strictement supérieur à la somme de tous ses diviseurs sauf lui-même.                          

Exemple : 10 est abondant. En effet les diviseurs de 10 sauf lui-même sont 1,2 et 5. Comme 1+2+5=8 at 10>8, alors est dit abondant.         

Un nombre est dit déficient s’il est strictement inférieur à la somme de tous ses diviseurs sauf lui-même.                          

Exemple : 12 est déficient. En effet les diviseurs de 12 sauf lui-même sont 1,2,3,4 et 6. Comme 1+2+3+4+6=16 at 12<16, alors est dit déficient.

Travail demandé:

Ecrire un programme Python qui permet de remplir un tableau T par n entiers strictement positifs avec 5≤n≤25, puis de transférer, les nombres déficients dans un tableau TD et les nombres abondants dans un tableau TA et d’afficher les deux tableaux résultants (TD et TA).

Exemple : pour le tableau Nombre suivant :

10 12 118 6 45 118 100

 

On obtient les tableaux TD et TA suivant

TD

12 100

 

TA

10 118 45 118

Solution Algorithmique

Pour résoudre ce problème, voici le principe algorithmique qui permet de remplir un tableau T avec n entiers strictement positifs, puis de transférer les nombres déficients dans un tableau TD et les nombres abondants dans un tableau TA :

Étapes de l'algorithme :

1- Initialisation :

Créer un tableau T contenant n entiers strictement positifs (avec 5 ≤ n ≤ 25).

Initialiser deux tableaux vides TD et TA pour stocker respectivement les nombres déficients et abondants.

2- Calcul des diviseurs :

Pour chaque élément t[i] dans le tableau T, calculer la somme de ses diviseurs propres (c'est-à-dire, tous les diviseurs de t[i] excepté t[i] lui-même).

3- Classification :

Si t[i] est inférieur à la somme de ses diviseurs propres, il est considéré comme un nombre déficient. Ajouter t[i] au tableau TD.

Si t[i] est supérieur à la somme de ses diviseurs propres, il est considéré comme un nombre abondant. Ajouter t[i] au tableau TA.

Sinon, ignorer l'élément t[i] (ce serait un nombre parfait, égal à la somme de ses diviseurs propres).

4- Affichage des résultats :

Afficher les tableaux TD et TA contenant respectivement les nombres déficients et abondants.

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

Algorithme du programme principal

Déclaration des objets

Objet

Type / Nature

i

entier

j

entier

k

entier

t

tableau de 30 entiers

ta

tableau de 30 entiers

td

tableau de 30 entiers

La fonction saisie

Cette fonction retourne un entier n entre 4 et 10 saisi par l'utilisateur.

Déclaration des objets

Objet

Type / Nature

n

entier

La procédure remplir

Cette procédure remplit le tableau t de n entiers distincts.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction somme_diviseurs

Cette fonction calcule la somme des diviseurs propres de l'entier n excepté lui-même.

Déclaration des objets

Objet

Type / Nature

i

entier

s

entier

La procédure transfert

Cette procédure transfert du tableau T, les nombres déficients dans un tableau TD et les nombres abondants dans un tableau TA.

Déclaration des objets

Objet

Type / Nature

i

entier

j

entier

k

entier

La procédure afficher_tableau

Cette procédure affiche les éléments du tableau.

Déclaration des objets

Objet

Type / Nature

i

entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour remplir un tableau d'entiers à partir d'une chaîne de caractères en Python, vous pouvez suivre les étapes suivantes :

1- Découper la chaîne de caractères en sous-chaînes contenant les entiers.

2- Convertir chaque sous-chaîne en entier.

3- Ajouter chaque entier au tableau.

Pour créer une application en Python pour de transférer, les nombres déficients dans un tableau TD et les nombres abondants dans un tableau TA et d’afficher les deux tableaux résultants (TD et TA).

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é 'ch' pour entrer des entiers .

QPushButton nommé 'remplir_bt' pour exécuter le module createTab afin de remplir le tableau à partir de la chaine 'ch'.

QPushButton nommé 'bt_transfert' pour exécuter le module transfert.

QLabel nommé 'msg' pour afficher un message d'erreur si ch est vide ou contient des valeurs non numériques ou la taille du tableau n'appartient pas à l'intervalle [5,25].

QLabel nommé 'tab_label' pour afficher les éléments du tableau T.

QLabel nommé 'tabA_label' pour afficher les nombres abondants du tableau TA.

QLabel nommé 'tabD_label' pour afficher les nombres déficients du tableau TD.

Enregistrez le fichier avec l'extension .ui, par exemple tabtab-2.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

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

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