Aller au contenu

Ep 44

▶ TĂ©lĂ©charger le sujet en pdf.

EXERCICE 1⚓

Programmer une fonction renverse, prenant en paramĂštre une chaĂźne de caractĂšres non vide mot et renvoie une chaĂźne de caractĂšres en inversant ceux de la chaĂźne mot.

Exemple :

🐍 Script Python
    >>> renverse("informatique")
    "euqitamrofni"
RĂ©ponse

Complétez le code ci-dessous

###
# Mettre votre code icibksl-nlbksl-nl



Solution

###
def renverse(mot):bksl-nl sol = ''bksl-nl for lettre in mot:bksl-nl sol = lettre + solbksl-nl return solbksl-nlbksl-nl



EXERCICE 2⚓

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Ă©.

On considĂšre pour cela un tableau tab de nboolĂ©ens, 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.

Pour chaque indice i :

  • si tab[i] vaut True : le nombre i est premier et on donne la valeur False Ă  toutes les cases du tableau dont l’indice est un multiple de i, Ă  partir de 2*i (c’est-Ă -dire 2*i, 3*i ...).
  • si tab[i] vaut False : le nombre i n’est pas premier et on n’effectue aucun changement sur le tableau.

On dispose de la fonction crible, incomplÚte et donnée ci-dessous, prenant en paramÚtre un entier n strictement positif et renvoyant un tableau contenant tous les nombres premiers plus petits que n.

RĂ©ponse

Complétez le code ci-dessous

###
def crible(n):bksl-nl """bksl-nl Renvoie un tableau contenant tous les nombres premiers plus petits que Nbksl-nl """bksl-nl premiers = []bksl-nl tab = [True] py-str nbksl-nl tab[0], tab[1] = False, Falsebksl-nl for i in range(..., n):bksl-nl if tab[i] == ...:bksl-nl premiers.append(...)bksl-nl for multiple in range(2py-stri, n, ...):bksl-nl tab[multiple] = ...bksl-nl return premiersbksl-nlbksl-nlassert crible(40) == [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]bksl-nlbksl-nl



Solution

###
def crible(n):bksl-nl """bksl-nl Renvoie un tableau contenant tous les nombres premiers plus petits que Nbksl-nl """bksl-nl premiers = []bksl-nl tab = [True] py-str nbksl-nl tab[0], tab[1] = False, Falsebksl-nl for i in range(2, n):bksl-nl if tab[i] == True:bksl-nl premiers.append(i)bksl-nl for multiple in range(2py-stri, n, i):bksl-nl tab[multiple] = Falsebksl-nl return premiersbksl-nlbksl-nlassert crible(40) == [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]bksl-nlbksl-nl