Aller au contenu

Ep 22

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

EXERCICE 1⚓

On rappelle que :

  • le nombre \(a^n\) est le nombre \(a \times a \times a \times \dots \times a\), oĂč le facteur \(a\) apparaĂźt \(n\) fois,
  • en langage Python, l’instruction t[-1] permet d’accĂ©der au dernier Ă©lĂ©ment du tableau t.

Dans cet exercice, l’opĂ©rateur ** et la fonction pow ne sont pas autorisĂ©s.

Programmer en langage Python une fonction liste_puissances qui prend en argument un nombre entier a, un entier strictement positif n et qui renvoie la liste de ses puissances

\(\rm{[a^1, a^2, ..., a^n]}\).

Programmer Ă©galement une fonction liste_puisssances_borne qui prend en argument un nombre entier a supĂ©rieur ou Ă©gal Ă  2 et un entier borne, et qui renvoie la liste de ses puissances, Ă  l’exclusion de \(\rm{a^0}\), strictement infĂ©rieures Ă  borne.

Exemples :

🐍 Script Python
    >>> liste_puissances(3, 5)
    [3, 9, 27, 81, 243]
    >>> liste_puissances(-2, 4)
    [-2, 4, -8, 16]
    >>> liste_puissances_borne(2, 16)
    [2, 4, 8]
    >>> liste_puissances_borne(2, 17)
    [2, 4, 8, 16]
    >>> liste_puissances_borne(5, 5)
    []
RĂ©ponse

Complétez le code ci-dessous

###
# Mettez votre code icibksl-nlbksl-nl



Solution

###
def listepy-undpuissances(a,n):bksl-nl puissances = [a]bksl-nl for i in range(n-1):bksl-nl puissances.append(puissances[-1] py-str a)bksl-nl return puissancesbksl-nlbksl-nldef listepy-undpuissancespy-undborne(a, borne):bksl-nl lst = []bksl-nl val = abksl-nl while val < borne:bksl-nl lst.append(val)bksl-nl val = val py-str abksl-nl return lstbksl-nlbksl-nl



EXERCICE 2⚓

On affecte Ă  chaque lettre de l'alphabet un code selon le tableau ci-dessous :

A B C D E F G H I J K L M
1 2 3 4 5 6 7 8 9 10 11 12 13
N O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25 26

Pour un mot donnĂ©, on dĂ©termine d’une part son code alphabĂ©tique concatĂ©nĂ©, obtenu par la juxtaposition des codes de chacun de ses caractĂšres, et d’autre part, son code additionnĂ©, qui est la somme des codes de chacun de ses caractĂšres.

Par ailleurs, on dit que ce mot est « parfait » si le code additionné divise le code concaténé.

Exemples :

  • Pour le mot "PAUL", le code concatĂ©nĂ© est la chaĂźne '1612112', soit l’entier 1 612 112. Son code additionnĂ© est l’entier 50 car 16 + 1 + 21 + 12 = 50. 50 ne divise pas l’entier 1 612 112 ; par consĂ©quent, le mot "PAUL" n’est pas parfait.

  • Pour le mot "ALAIN", le code concatĂ©nĂ© est la chaĂźne '1121914', soit l’entier 1 121 914. Le code additionnĂ© est l’entier 37 car 1 + 12 + 1 + 9 + 14 = 37. 37 divise l’entier 1 121 914 ; par consĂ©quent, le mot "ALAIN" est parfait.

ComplĂ©ter la fonction est_parfait ci-dessous qui prend comme argument une chaĂźne de caractĂšres mot (en lettres majuscules) et qui renvoie le code alphabĂ©tique concatĂ©nĂ©, le code additionnĂ© de mot, ainsi qu’un boolĂ©en qui indique si mot est parfait ou pas.

RĂ©ponse

Complétez le code ci-dessous

###
dico = {"A": 1, "B": 2, "C": 3, "D": 4, "E": 5, "F": 6,bksl-nl "G": 7, "H": 8, "I": 9, "J": 10, "K": 11, "L": 12,bksl-nl "M": 13, "N": 14, "O": 15, "P": 16, "Q": 17,bksl-nl "R": 18, "S": 19, "T": 20, "U": 21, "V": 22,bksl-nl "W": 23, "X": 24, "Y": 25, "Z": 26}bksl-nlbksl-nldef estpy-undparfait(mot):bksl-nl # mot est une chaĂźne de caractĂšres (en lettres majuscules)bksl-nl codepy-undconcatene = ""bksl-nl codepy-undadditionne = ...bksl-nl for c in mot:bksl-nl codepy-undconcatene = codepy-undconcatene + ...bksl-nl codepy-undadditionne = ...bksl-nl codepy-undconcatene = int(codepy-undconcatene)bksl-nl if ... :bksl-nl motpy-undestpy-undparfait = Truebksl-nl else:bksl-nl motpy-undestpy-undparfait = Falsebksl-nl return codepy-undadditionne, codepy-undconcatene, motpy-undestpy-undparfaitbksl-nlbksl-nl



Solution

###
dico = {"A": 1, "B": 2, "C": 3, "D": 4, "E": 5, "F": 6,bksl-nl "G": 7, "H": 8, "I": 9, "J": 10, "K": 11, "L": 12,bksl-nl "M": 13, "N": 14, "O": 15, "P": 16, "Q": 17,bksl-nl "R": 18, "S": 19, "T": 20, "U": 21, "V": 22,bksl-nl "W": 23, "X": 24, "Y": 25, "Z": 26}bksl-nlbksl-nlbksl-nldef estpy-undparfait(mot):bksl-nl # mot est une chaĂźne de caractĂšres (en lettres majuscules)bksl-nl codepy-undconcatene = ""bksl-nl codepy-undadditionne = 0bksl-nl for c in mot:bksl-nl codepy-undconcatene = codepy-undconcatene + str(dico[c])bksl-nl codepy-undadditionne = codepy-undadditionne + dico[c]bksl-nl codepy-undconcatene = int(codepy-undconcatene)bksl-nl if codepy-undconcatene % codepy-undadditionne == 0:bksl-nl motpy-undestpy-undparfait = Truebksl-nl else:bksl-nl motpy-undestpy-undparfait = Falsebksl-nl return codepy-undadditionne, codepy-undconcatene, motpy-undestpy-undparfaitbksl-nlbksl-nl



Exemple :

🐍 Script Python
    >>> est_parfait("PAUL")
    (50, 1612112, False)
    >>> est_parfait("ALAIN")
    (37, 1121914, True)