Super premier – Bac pratique – Section informatique- 2009

Bac Info 05-12-25
30 0

Sujet (Algo et programmation - Bac 2009)

Un nombre est dit super premier s'il est premier et si, en supprimant des chiffres à partir de sa droite, le nombre restant est aussi premier.

Exemple : Le nombre 59399 est super premier car les nombres 59399, 5939, 593, 59 et 5 sont tous premiers.

Ecrire un programme en Python qui permet de :

- saisir un entier n tel que 40000 < n < 100000, - chercher tous les nombres premiers inférieurs ou égaux à n, les afficher à raison d'un nombre par ligne en mentionnant devant chaque nombre super premier la note « super premier » et de faire la même chose dans un fichier texte intitulé super_p.txt.

 

Solution Algorithmique

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

- la fonction saisie()

- la fonction test_premier()

- la fonction test_superpremier()

- la procédure remplir_fichier_superpremier ()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

La fonction saisir

Cette fonction saisit et retourne un entier entre 40000 et 10000.

Déclaration des objets

Objet Type / Nature
n entier

La fonction test_premier

La fonction test_premier(n) a pour rôle de déterminer si un nombre entier n est un nombre premier.

Comment elle fonctionne ?

1- Elle commence par tester les diviseurs possibles à partir de 2.

2- Elle cherche un entier i qui divise n (autre que 1 et n).

3- Tant qu’aucun diviseur n’est trouvé et que i est inférieur ou égal à la moitié de n, elle continue d’incrémenter i.

4- À la fin :

Si aucun diviseur n’a été trouvé, la fonction retourne Vrai → le nombre est premier.

Si un diviseur a été trouvé, la fonction retourne Faux → le nombre n’est pas premier.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction test_superpremier

Cette fonction compte combien de fois le caractère c (par exemple '0' ou '1') apparaît dans la chaîne binaire.

Plus précisément :

1- Elle parcourt toute la chaîne binaire caractère par caractère.

2- Chaque fois qu’elle trouve le caractère recherché c, elle incrémente un compteur.

3- À la fin, elle retourne le nombre total d'occurrences du caractère.

Déclaration des objets

Objet Type / Nature
cp entier
i entier

 

La procédure remplir_fichier_superpremier

La procédure remplir_fichier_superpremier(n) parcourt tous les nombres entre 0 et n, teste si chacun d’eux est super premier grâce à la fonction test_superpremier(i), et enregistre dans un fichier texte ceux qui vérifient cette propriété.

Plus précisément, elle :

1- ouvre un fichier texte super_p.txt en écriture pour y stocker les nombres super premiers trouvés.

2- parcourt tous les entiers de 0 jusqu’à n

3- teste si chaque entier i est super premier grâce à la fonction test_superpremier(i) (déjà définie ailleurs).

4- Si le nombre est super premier :

Elle l’affiche sur l’écran

Elle l’écrit dans le fichier sous la forme : i : super premier

5- ferme le fichier une fois l’écriture terminée.

Déclaration des objets

Objet Type / Nature
f fichier du nombre.dat
i entier

 

Solution en Python

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