Entiers riches – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 02-09-24
147 0

Sujet bac informatique pratique 2015 (Bac scientifique)

Un nombre est dit riche si au moins un de ses facteurs premiers est répété deux foix ou plus dans la décomposition du nombre en facteurs premiers.

Exemple : Le nombre 72 est dit riche, car 2 et 3 se répètent plus qu’une fois dans sa décomposition en facteurs permiers (72= 22+32).

Le nombre 22 n’est pas riche, car tous ses facteurs premiers existent une seule fois (22=2*11).

Ecrire un programme Python qui permet de remplir un tableau T par N (3 < N <10) entiers positifs non nuls à deux chiffres ou à trois chiffres, de trouver et d’afficher le ou les nombres riches du tableau T.

Exemple : Pour N=6 et le tableau T suivant :

22 15 90 540 30 72

 

Le programme affiche : « les nombres riches sont : 90,540, 72 »

En effet, 22=2*11, 15=3*5, 90=2*3*3*5, 540=2*2*3*3*3*5, 30=2*3*5 et 72=2*2*2*3*3

Solution Algorithmique

Pour résoudre ce problème, on peut suivre les étapes suivantes pour créer un algorithme qui remplit un tableau avec des entiers, trouve les nombres riches, et les affiche :

1. Initialisation

Créer un tableau T de taille N, où 3 < N < 10.

Remplir le tableau T avec N entiers positifs non nuls compris entre 10 et 999.

2. Vérification des nombres riches

Pour chaque nombre dans le tableau :

a) Diviser le nombre par 2 tant qu'il est divisible par 2.

b) Si un des facteurs premiers a une puissance supérieure à 1 (c’est-à-dire qu’il apparaît plus d’une fois dans la décomposition), alors afficher  le nombre riche.

c) Dans le cas contraire, on répète les étapes a) et b) pour les nombre 3,5  etc.

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


Algorithme du programme principal

Déclaration des objets

Objet Type / Nature
n entier
t tableau des 100 entiers

 

La fonction saisie_taille

Cette fonction retourne un entier n entre 3 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 entre 10 et 999.

Déclaration des objets

Objet

Type / Nature

i

entier

La fonction test_riche

Cette fonction teste si un entier est riche ou non .

Déclaration des objets

Objet Type / Nature
i entier
cp entier

 

La procédure reservations_gagnantes

Cette procédure identifie et affiche les nombres riches.

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 identifier et afficher les nombres riches

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_recherche' pour exécuter le module afficher_entiers_riches.

QLabel nommé 'msg' pour afficher un message d'erreur si ch est vide ou contient des valeurs non numériques ou les éléments du tableau non formé de 2 ou de 3 chiffres.

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

QLabel nommé 'resultat' pour afficher les entiers riches.

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