Mot parfait

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

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

Cette table de correspondance est stockée dans un dictionnaire DICO où les clés sont les lettres de l’alphabet et les valeurs les codes correspondants.

Pour un mot donné (une chaine de caractères non vide uniquement composée de lettres majuscules), on détermine :

  • d'une part son code alphabétique concaténé, obtenu par la juxtaposition du texte des codes de chacun de ses caractères, et lu comme un unique entier,
  • et d'autre part, son code additionné, qui est la somme des codes de chacun de ses caractères.

On dit que ce mot est « parfait » si le code additionné divise le code concaténé.

Exemples

  1. Pour le mot "PAUL", les codes sont \(16, 1, 21, 12\).

    • Le code concaténé est la chaine 1612112, soit l'entier \(1\,612\,112\).
    • Son code additionné est l'entier \(16 + 1 + 21 + 12\) qui donne \(50\).
    • \(50\) ne divise pas l'entier \(1\,612\,112\) ; par conséquent, le mot "PAUL" n'est pas parfait.
  2. Pour le mot "ALAIN", les codes sont \(1, 12, 1, 9, 14\).

    • Le code concaténé est la chaine 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 chaine 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.

Exemples
>>> est_parfait("PAUL")
(50, 1612112, False)
>>> est_parfait("ALAIN")
(37, 1121914, True)
###(Dés-)Active le code après la ligne # Tests (insensible à la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Alt+: ; Ctrl pour inverser les colonnes)
Entrer ou sortir du mode "plein écran"
(Esc)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013jncIo0m/gS-d;fw,7D2qy+)Oe[]h43vblr_:èp9î6kC5 %i=8a(sP1tu050m0z0%0Y0V0H0!0T0d0H0Y0!0!0W010%0V0M010406050!0(0h0h0Y0I0v040k0f0H0(0|0f0c050i13151719110M04051p1i1s0i1p110m0V0F0;0?0^0`0?0c0j0(0Y0j0z0l0M0v0%0C1g0T0C0V0j0C0H1U0C0%0 050,0G0H0z1B0@0_011T1V1X1V0%1%1)1#0%0I1q1P0;1c0!0M0Y0c0`0t011+1D010o0.0z0c0Y0h0z1#2022271-2a1)2d2f0 0a0T0#0I0f0M0f0!0V1f0c0T0*1~0I0I0z0d2A1i2i0c1q0i1P2N1`1|1{1$0m2k1E0V0c2c2x1#1y1A0=1,2X2Z0c0f2%1#0M2G1q2L2N2@12212B2)282-0I160H1#0Y1S2G0o0`030J0J0d2.0z1X2,0f0l0$3i0 0T0$1i0Y2^2{102`2j2}1-2 3133350z3701393b3d3f2!3i0l25040T0t3o3q223s2L2W013x0Y321q340C36383a3c0*3H2-3J0E3l0E3P2K3r113T3v0`3W3Y053!3$3D3(3G2Y3I3j0D3l0D3;1j3?3t2|1C3w0f303X3z3#3B3%3F3*433,3j0S3l0S492@3@2{3U3{4j3 3E3)3e4p3h3j0P3l0P4v4b3^4e3`4g3y3Z3A3C4D423g3J0r3l0r4M3R4x3u4P3V4R4i4T4k4V414o4Y3j0X3l0X4%2M4)4d2*4,4h3|3~4l404n4F4@0l0N3l0N4|3S4y3_514S3}4U4m4E3+4H3i0g0 0$0g5e1t2=1i2%2Q0m1|2V5h4E2$1z1q2;0z2?3r3=3R054E5L2j0V0m0`3a2L3J0$3z5T5V575o5Y262o0z5$5n4G5)2N3p4c3U0Q0 0*0o5N2M5?5h0p3l5|5R4 2~0o0 0z0!0%0J210I0o0-0%625~4+0~040Z6h4O500c0 0h0f6g4a5O6o286k0x0K62116v5}3T5#015W2{3J3L5k6H4=58443K5*2e5,6I5%5/3j6M0i3p0T6%0T6i500d5Z04030T6s0%0T686=0(2Z0;0C0Y0O6`2D0d170Y2I0L2G0:0Z2c0T1)1?766:0Y0b0(0!0d0(1)0!0x6C6n4y6O0J5X3j3.4T7r5.593.0T5+5-4X6R7v3P6(6)6x3w0 4E3F0c710%2c0z627J5g4+0f0 0W7U6*280!3L020u0(6t0n7*7,0%0n7o6E630T7r7t0l467w5U6W7y6R467B6U7D4?821#6#3M6(7$7L047N0Y0m1y2A2Z7#7K0`7Y047!7@7V4*500h0V0 5u7@6D2_6G7 6J223J4s7~866Q4q0l4s842f8K5(4r896$8c8n015^040o4g8m7W6p7M8%8u280f60042Y8+648e6;7p8,1-6k6B8A8_2B7`6K4I5!8E6X594J8P6V6P8S0l4J5;8b7I6%8d3`7M3d7O7Q7S8=3U8p8r2@8t8?9k8f9m3c7P0Y7R8l8s9j018p0w9q5h0c0G0 690I8 3U6k6m7@9G6q040s0e0R0y9R5h6k0A9%4+9X0d9+506k0B7n8~9V8D5$7{4!8J807E8M4!998R6Y0l9|7H9h9i8X9-9m8h8j0V1g9E9u9G9s9K9,9l0*0Jad2zaf0cah3r9v9r0 9J9Faa0 9Z9#9/6y0 9*9^8(2~8*aJ8`0`9;7?8C7q957{4_9}9ba44_a29~878MaWa7a9aK8e7N9A9oau3Raw5hakaAa,3`9N8:0c6uaSaO019TaFa-9z1ga:7TaN9wb20 9?4w9R918G3j5baX966R5ba#aY59bka*a?am046;0J6@6b176e2zal50a^aiaB9yaoa/9C9pa_b18p0UbEaLbJ0zap8iaragb9bHa`9H7Z9tav9G8w8yaR5M9_6W7{5t94a359b?bpbm8Mb?9f7I9G8Z2G0%0(0I1hbObbabaoaq8kb!b/b$6k0qbSb5bKb7bMa;6Fcg0 cic84z6r6tby69bA6d6fb.5O0i5Q5w5K5y5H1i0%5BcK2T2O0Y1(cH0i5z6D0*0,0.0!04.