Produit des diviseurs version 2 – Bac Pratique 2016 [ Algorithme + Python ]

Algo et Python 17-09-24
51 0

Sujet bac informatique pratique 2017 (Bac scientifique)

Etant donné un entier N qui vérifie la propriété suivante : Le produit des diviseurs de n sauf lui-même est égale à une puissance de n avec un exposant > 0

Exemples :

N=6 vérifie cette propriété car le produit de ses diviseurs sauf lui-même est égal à 6 (1*2*3=6) qui est une puissance de 6, avec un exposant =1(car 6=61)

N=12 vérifie cette propriété car le produit de ses diviseurs sauf lui-même est égal à 144  (1*2*3*4*6=144) qui est une puissance de 12, avec un exposant =2(car 144=122)

N=30 vérifie cette propriété car le produit de ses diviseurs sauf lui-même est égal à 27000 (1*2*3*5*6*10*15=27000) qui est une puissance de 30, avec un exposant =3(car 27000=303)

N=9 ne vérifie pas cette propriété car le produit de ses diviseurs sauf lui-même est égal à 3 (1*3=3) qui n’est pas une puissance de 9.

N=11 ne vérifie pas cette propriété car le produit de ses diviseurs sauf lui-même est égal à 1qui est  une puissance de 11, avec un exposant égal à 0.

On se propose d’écrire un programme Python permettant de déterminer et d’afficher tous les nombres de [a,b] ( avec 2≤a≤b≤100) vérifiant la propriété donnée ci-dessus.

Solution Algorithmique

Pour résoudre ce problème, nous devons identifier les nombres dans l'intervalle [a,b] qui vérifient la propriété suivante : le produit de tous les diviseurs du nombre NN, sauf lui-même, est une puissance de NN avec un exposant strictement supérieur à 0.

Approche algorithmique :

1. Trouver les diviseurs d’un nombre N :

Pour chaque N, nous devons trouver tous ses diviseurs. Les diviseurs de N sont tous les nombres qui divisent N sans reste.

Ensuite, on exclut N lui-même de la liste des diviseurs.

2. Calculer le produit des diviseurs sauf N :

On calcule le produit de tous les diviseurs sauf N.

3. Vérifier si le produit est une puissance de N :

Le produit des diviseurs est une puissance de N si ce produit peut s'écrire sous la forme N exposant k, où k est un entier strictement supérieur à 0.

Pour vérifier cela, il suffit de diviser le produit par N de façon répétée jusqu'à ce que le résultat soit égal à 1. Si on atteint 1 en un nombre d'itérations k≥1, alors le produit est une puissance de N.

4. Parcourir tous les nombres dans l'intervalle [a,b] :

On parcourt tous les nombres de a à b et on applique la vérification ci-dessus pour chaque nombre.

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

Algorithme du programme principal

Déclaration des objets

Objet Type / Nature
a entier
b entier

 

La procédure saisie_ab

Cette procédure saisit deux entiers a et b tel que 2 ≤ a < b ≤ 100

Déclaration des objets

Objet Type / Nature
a entier
b entier

 

La fonction produit_diviseurs

Cette fonction calcule le produit des diviseurs de n sauf lui-même.

Déclaration des objets

Objet Type / Nature
i entier
p entier

 

La fonction test_puissance

Cette fonction vérifie si le produit des diviseurs est une puissance de n

Déclaration des objets

Objet Type / Nature
p entier

 

La procédure afficher

Cette procédure affiche les nombres qui vérifient la propriété : "le produit des diviseurs de n sauf lui-même est une puissance de n".

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 afficher tous les nombres de l’intervalle [a,b] (avec 2 ≤ a < b ≤ 100), vérifiant la propriété donnée ci-dessus. 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:

QPushButton nommé 'afficher_bt' pour exécuter le module affichage().

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

QLabel nommé 'resultat' pour afficher les nombres

QLineEdit nommé 'a' pour entrer un entier.

QLineEdit nommé 'b' pour entrer un entier.

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