Crible d'Ératosthène - Sujet 05 - EP NSI 2025
Énoncé du problème
Exercice 1
EXERCICE 1 (10 points)
Programmer une fonction renverse, prenant en paramètre une chaîne de caractères non vide mot et renvoie cette chaîne de caractères en ordre inverse.
Exemple :
>>> renverse("")
""
>>> renverse("abc")
"cba"
>>> renverse("informatique")
"euqitamrofni"
Exercice 2
EXERCICE 2 (10 points)
Un nombre premier est un nombre entier naturel qui admet exactement deux diviseurs distincts entiers et positifs : 1 et lui-même.
Le crible d’Ératosthène permet de déterminer les nombres premiers plus petit qu’un certain nombre n fixé strictement supérieur à 1.
On considère pour cela un tableau tab de n booléens (type list), initialement tous égaux à True, sauf tab[0] et tab[1] qui valent False, 0 et 1 n’étant pas des nombres premiers.
On parcourt alors ce tableau de gauche à droite et pour chaque indice i :
- si
tab[i]vautTrue: le nombreiest premier et on donne la valeurFalseà toutes les cases du tableau dont l’indice est un multiple dei, à partir de2*i(c’est-à-dire2*i, 3*i…). - si
tab[i]vautFalse: le nombrein’est pas premier et on n’effectue aucun changement sur le tableau.
On dispose de la fonction crible, donnée ci-dessous et à compléter, prenant en paramètre un entier n strictement supérieur à 1 et renvoyant un tableau contenant tous les nombres premiers plus petits que n.
def crible(n):
"""Renvoie un tableau contenant tous les nombres premiers
plus petits que n."""
premiers = []
tab = [True] * n
tab[0], tab[1] = False, False
for i in range(n):
if tab[i]:
premiers....
multiple = ...
while multiple < n:
tab[multiple] = ...
multiple = ...
return premiers
Exemples :
>>> crible(40)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]
>>> crible(5)
[2, 3]
Les contraintes ci-dessous sont ajoutées par la plateforme et ne font pas partie du sujet.
Exercice 1
Contraintes :
motest une chaîne de caractères (str)0 <= len(mot) <= 10^4- la chaîne vide est acceptée :
renverse("")renvoie"" - les caractères de
motsont des caractères ASCII imprimables - la valeur renvoyée est une chaîne de caractères (
str)
Exercice 2
Contraintes :
nest un entier (int)2 <= n <= 10^5- la valeur renvoyée est une liste d’entiers (
list) contenant les nombres premiers strictement inférieurs àn, rangés dans l’ordre croissant - pour
n = 2, la liste renvoyée est vide