Suite Aliquote – Bac Pratique 2014 [ Algorithme + Python ]

Algo et Python 21-08-24
50 0

Travail demandé

Une suite Aliquote est une suite d’entiers dans laquelle chaque terme Un (avec n>0) est la somme des diviseurs propres du terme qui le précède (Un-1). Quand la suite atteint la valeur 1, elle s’arrête car 1 ne possède pas de diviseurs propres.

N.B : les diviseurs propres d’un nombre sont tous ses diviseurs sauf lui-même.

Exemple : Pour U0 les termes de la suite Aliquote de 12 seront calculés comme suit :

Les diviseurs propres de 12 sont 1,2,3,4 et 6 donc U1=1+2+3+4+6=16

Les diviseurs propres de 16 sont 1,2,4 et 8 donc U2=1+2+4+8=15

Les diviseurs propres de 15 sont 1,3 et 5 donc U3=1+3+5=9

Les diviseurs propres de 9 sont 1 et 3 donc U4=1+3=4

Les diviseurs propres de 4 sont 1 et 2 donc U5=1+2=3

Les diviseurs propres de 3 sont 1 donc U6=1

La suite Aliquote de 12 est 12 16 15 9 4 3 1

Travail demandé :

Ecrire un programme Python qui permet de saisir  U0  avec U0≥10 et d’afficher les termes de la suite et afficher si la suite est Aliquode ou non.

N.B : Le calcul des termes de la suite s’arrête dans l’un des deux cas suivants :

Lorsqu’on atteint la valeur 1 et dans ce cas la suite est Aliquote.

Lorsque la valeur d’un nouveau terme est égale à la valeur de son précédent (Un=Un-1) et dans ce cas la suite n’est pas Aliquote.

Solution Algorithmique

Pour résoudre ce problème, voici le principe de l'algorithme à suivre :

1. Saisie de la valeur initiale U0

Demander à l'utilisateur de saisir une valeur initiale U0 avec la contrainte que U0 doit être supérieur ou égal à 10.

2. Calcul des termes de la suite

Initialiser la valeur actuelle de la suite Un à U0.

Boucle de calcul des termes :

Tant que Un n'est ni égal à 1 ni égal à la valeur précédente Un-1 :

a) Calculer les diviseurs propres de Un.

b) Faire la somme des diviseurs propres pour obtenir le nouveau terme Un+1.

c) Mettre à jour la valeur de Un avec Un+1.

3. Conditions d'arrêt

- Si la valeur de Un devient 1, la suite est Aliquote. Afficher la suite complète et indiquer qu'elle est Aliquote.

- Si la valeur de Un est égale à Un-1 (c'est-à-dire que la suite devient constante), arrêter le calcul. Afficher la suite complète et indiquer qu'elle n'est pas Aliquote.

4. Affichage des résultats

Afficher tous les termes de la suite calculée.

Indiquer si la suite est Aliquote ou non.

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

Déclaration des objets

Objet

Type / Nature

u0

entier

La fonction saisie_u0

Cette fonction retourne un entier  >= 10 saisi par l'utilisateur.

Déclaration des objets

Objet

Type / Nature

n

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 somme_diviseurs

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

Déclaration des objets

Objet

Type / Nature

i

entier

u

entier

v

entier

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour saisir  U0  avec U0≥10 et d’afficher les termes de la suite et afficher si la suite est Aliquode ou non  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é 'u' pour entrer un entier >=10.

QPushButton nommé 'test_bt' pour exécuter le module suite_aliquote.

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

QLabel nommé 'resultat' pour afficher les termes de la suite et afficher si la suite est Aliquode ou non.

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