Sujet n°22
Sujet original
Pour télécharger l'énoncé original, cliquer ici.
Exercice n°1☘
On rappelle que :
- le nombre a^n est le nombre a × a × … × 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 tableaut
.
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 :
[a1, a2, ... ,an]
.
Programmer également une fonction liste_puissances_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 a0
, strictement inférieures à borne
.
Commentaires
Le mot « liste » est à comprendre dans le sens « liste Python » (c'est-à-dire tableau) plutôt que dans le sens du type abstrait de données liste étudié en Terminale.
Exemples
>>> 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)
[]
Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
|
Exercice n°2☘
On affecte à chaque lettre de l’alphabet un code selon les tableaux ci-dessous :
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 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.
Son 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Commentaire sur le code original
Pour télécharger l'original du fichier à compléter, cliquer ici.
Exemple
>>> est_parfait("PAUL")
(50, 1612112, False)
>>> est_parfait("ALAIN")
(37, 1121914, True)
Une solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|