<table><thead><tr><th>N°</th><th>b</th><th>n</th><th>τ<sub>b</sub>(n)</th><th>Id<sup>†</sup><sub>b</sub>(n)</th></tr></thead><tbody><tr><td>25</td><td>24</td><td>4 001 = (6 | 22 | 17)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>26</td><td>24</td><td>4 013 = (6 | 23 | 5)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>27</td><td>40</td><td>4 115 = (2 | 22 | 35)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>28</td><td>40</td><td>4 456 = (2 | 31 | 16)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>29</td><td>24</td><td>4 526 = (7 | 20 | 14)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>30</td><td>24</td><td>4 563 = (7 | 22 | 3)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>31</td><td>24</td><td>4 576 = (7 | 22 | 16)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>32</td><td>24</td><td>4 588 = (7 | 23 | 4)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>33</td><td>24</td><td>5 101 = (8 | 20 | 13)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>34</td><td>24</td><td>5 138 = (8 | 22 | 2)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>35</td><td>51</td><td>5 145 = (1 | 49 | 45)<sub>2,51</sub></td><td>5 868 460 = (44 | 12 | 11 | 43)<sub>3,51</sub></td><td>(5, (1, 4))</td></tr><tr><td>36</td><td>24</td><td>5 151 = (8 | 22 | 15)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>37</td><td>24</td><td>5 163 = (8 | 23 | 3)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>38</td><td>46</td><td>5 470 = (2 | 26 | 42)<sub>2,46</sub></td><td>95 540 = (45 | 6 | 44)<sub>2,46</sub></td><td>(117, (10, 107))</td></tr><tr><td>39</td><td>24</td><td>5 676 = (9 | 20 | 12)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>40</td><td>24</td><td>5 713 = (9 | 22 | 1)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>41</td><td>40</td><td>5 714 = (3 | 22 | 34)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>42</td><td>24</td><td>5 726 = (9 | 22 | 14)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>43</td><td>24</td><td>5 738 = (9 | 23 | 2)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>44</td><td>40</td><td>6 055 = (3 | 31 | 15)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>45</td><td>24</td><td>6 251 = (10 | 20 | 11)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>46</td><td>24</td><td>6 288 = (10 | 22 | 0)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>47</td><td>24</td><td>6 301 = (10 | 22 | 13)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>48</td><td>24</td><td>6 313 = (10 | 23 | 1)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>49</td><td>24</td><td>6 826 = (11 | 20 | 10)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>50</td><td>63</td><td>6 849 = (1 | 45 | 45)<sub>2,63</sub></td><td>188 290 = (47 | 27 | 46)<sub>2,63</sub></td><td>(5, (1, 4))</td></tr><tr><td>51</td><td>24</td><td>6 876 = (11 | 22 | 12)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>52</td><td>24</td><td>6 888 = (11 | 23 | 0)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>53</td><td>40</td><td>7 313 = (4 | 22 | 33)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>54</td><td>24</td><td>7 401 = (12 | 20 | 9)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>55</td><td>63</td><td>7 432 = (1 | 54 | 61)<sub>2,63</sub></td><td>188 290 = (47 | 27 | 46)<sub>2,63</sub></td><td>(5, (1, 4))</td></tr></tbody></table>
<table><thead><tr><th>N°</th><th>b</th><th>n</th><th>τ<sub>b</sub>(n)</th><th>Id<sup>†</sup><sub>b</sub>(n)</th></tr></thead><tbody><tr><td>56</td><td>24</td><td>7 451 = (12 | 22 | 11)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>57</td><td>46</td><td>7 585 = (3 | 26 | 41)<sub>2,46</sub></td><td>95 540 = (45 | 6 | 44)<sub>2,46</sub></td><td>(117, (10, 107))</td></tr><tr><td>58</td><td>40</td><td>7 654 = (4 | 31 | 14)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>59</td><td>51</td><td>7 745 = (2 | 49 | 44)<sub>2,51</sub></td><td>5 868 460 = (44 | 12 | 11 | 43)<sub>3,51</sub></td><td>(5, (1, 4))</td></tr><tr><td>60</td><td>24</td><td>7 976 = (13 | 20 | 8)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>61</td><td>24</td><td>8 026 = (13 | 22 | 10)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>62</td><td>24</td><td>8 551 = (14 | 20 | 7)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>63</td><td>24</td><td>8 601 = (14 | 22 | 9)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>64</td><td>40</td><td>8 912 = (5 | 22 | 32)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>65</td><td>24</td><td>9 126 = (15 | 20 | 6)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>66</td><td>24</td><td>9 176 = (15 | 22 | 8)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>67</td><td>40</td><td>9 253 = (5 | 31 | 13)<sub>2,40</sub></td><td>2 376 196 = (37 | 5 | 4 | 36)<sub>3,40</sub></td><td>(5, (1, 4))</td></tr><tr><td>68</td><td>46</td><td>9 700 = (4 | 26 | 40)<sub>2,46</sub></td><td>95 540 = (45 | 6 | 44)<sub>2,46</sub></td><td>(117, (10, 107))</td></tr><tr><td>69</td><td>24</td><td>9 701 = (16 | 20 | 5)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>70</td><td>24</td><td>9 751 = (16 | 22 | 7)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>71</td><td>24</td><td>10 276 = (17 | 20 | 4)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>72</td><td>24</td><td>10 326 = (17 | 22 | 6)<sub>2,24</sub></td><td>13 077 = (22 | 16 | 21)<sub>2,24</sub></td><td>(9, (1, 8))</td></tr><tr><td>73</td><td>51</td><td>10 345 = (3 | 49 | 43)<sub>2,51</sub></td><td>5 868 460 = (44 | 12 | 11 | 43)<sub>3,51</sub></td><td>(5, (1, 4))</td></tr></tbody></table>
A.4 Nombres bretons et nombres multiceltes

• Petits nombres bretons. Le premier entier qui est breton dans une base donnée est :

$$
n := 13\,077 = (22 \mid 16 \mid 21)_{2,24} \quad , \quad \mathrm{Id}_{24}^{\dagger}(13\,077) = (1,8). \tag{112}
$$

Le suivant semble être (il est possible qu’il y en ait d’autres, je n’ai pas testé) :

$$
n := 95\,540 = (45 \mid 6 \mid 44)_{2,46} \quad , \quad \mathrm{Id}_{46}^{\dagger}(95\,540) = (10,107). \tag{113}
$$

• Petits nombres multiceltes. Il y a aussi des entiers qui sont celtes pour plusieurs bases diffé-
rentes, on les appelles multiceltes. Voici les cinq premiers que j’ai trouvés (il est possible qu’il y en
ait d’autres car je ne testais pas pour toutes les bases mais seulement pour les bases inférieurs à 100) :

♠ n := 39 881. Il est celte pour les deux bases suivantes :

⊤ b := 11, on a :
$$
\mathrm{Id}_{11}^{\dagger}(n) = (1,4) \ , \ \tau_{11}(n) = (9 \mid 3 \mid 10 \mid 2 \mid 8)_{4,11};
$$

⊤ b := 28, on a :
$$
\mathrm{Id}_{28}^{\dagger}(n) = (1,4) \ , \ \tau_{28}(n) = (22 \mid 10 \mid 9 \mid 21)_{3,28}.
$$

♠ n := 58 481. Il est celte pour les deux bases suivantes :

⊤ b := 11, on a :
$$
\mathrm{Id}_{11}^{\dagger}(n) = (1,4) \ , \ \tau_{11}(n) = (9 \mid 3 \mid 10 \mid 2 \mid 8)_{4,11};
$$

⊤ b := 40, on a :
$$
\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40}.
$$

♠ n := 488 789. Il est celte pour les deux bases suivantes :

⊤ b := 28, on a :
$$
\mathrm{Id}_{28}^{\dagger}(n) = (1,4) \ , \ \tau_{28}(n) = (22 \mid 10 \mid 9 \mid 21)_{3,28};
$$

⊤ b := 40, on a :
$$
\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40}.
$$

♠ n := 755 705. Il est celte pour les deux bases suivantes :

⊤ b := 40, on a :
$$
\mathrm{Id}_{40}^{\dagger}(n) = (1,4) \ , \ \tau_{40}(n) = (37 \mid 5 \mid 4 \mid 36)_{3,40};
$$

⊤ b := 51, on a :
$$
\mathrm{Id}_{51}^{\dagger}(n) = (1,4) \ , \ \tau_{51}(n) = (44 \mid 12 \mid 11 \mid 43)_{3,51}.
$$

♠ n := 886 227. Il est celte pour les deux bases suivantes :

⊤ b := 19, on a :
$$
\mathrm{Id}_{19}^{\dagger}(n) = (1,4) \ , \ \tau_{19}(n) = (16 \mid 5 \mid 13 \mid 13 \mid 4 \mid 15)_{5,19};
$$

⊤ b := 86, on a :
$$
\mathrm{Id}_{86}^{\dagger}(n) = (4,22) \ , \ \tau_{86}(n) = (85 \mid 18 \mid 17 \mid 84)_{3,86}.
$$
A.5 Nombres siciliens en base 66

La base $b := 66$ contient de nombreux entiers qui semblent être ni normands ni celtes. Dans cette sous-section, on se contente des nombres de degré 2 en base 66 qui semblent être quebecquois, il en existe 16 classes.

Voici leur liste :

<table><thead><tr><th>N°</th><th>n</th></tr></thead><tbody><tr><td>1</td><td>281 028 = (64 | 34 | 0)<sub>2,66</sub></td></tr><tr><td>2</td><td>281 424 = (64 | 40 | 0)<sub>2,66</sub></td></tr><tr><td>3</td><td>282 216 = (64 | 52 | 0)<sub>2,66</sub></td></tr><tr><td>4</td><td>282 282 = (64 | 53 | 0)<sub>2,66</sub></td></tr><tr><td>5</td><td>282 546 = (64 | 57 | 0)<sub>2,66</sub></td></tr><tr><td>6</td><td>282 678 = (64 | 59 | 0)<sub>2,66</sub></td></tr><tr><td>7</td><td>283 336 = (65 | 2 | 64)<sub>2,66</sub></td></tr><tr><td>8</td><td>283 995 = (65 | 12 | 63)<sub>2,66</sub></td></tr><tr><td>9</td><td>284 128 = (65 | 14 | 64)<sub>2,66</sub></td></tr><tr><td>10</td><td>284 590 = (65 | 21 | 64)<sub>2,66</sub></td></tr><tr><td>11</td><td>285 712 = (65 | 38 | 64)<sub>2,66</sub></td></tr><tr><td>12</td><td>285 844 = (65 | 40 | 64)<sub>2,66</sub></td></tr><tr><td>13</td><td>286 372 = (65 | 48 | 64)<sub>2,66</sub></td></tr><tr><td>14</td><td>286 636 = (65 | 52 | 64)<sub>2,66</sub></td></tr><tr><td>15</td><td>286 702 = (65 | 53 | 64)<sub>2,66</sub></td></tr><tr><td>16</td><td>287 230 = (65 | 61 | 64)<sub>2,66</sub></td></tr></tbody></table>

On a les relations suivantes :

$$1, 7 : \gamma_{66}((64 \mid 34 \mid 0)_{2,66}) = \pi_{66}((64 \mid 34 \mid 0)_{2,66}) = (65 \mid 2 \mid 64)_{2,66}$$

$$2, 9 : \gamma_{66}((64 \mid 40 \mid 0)_{2,66}) = \pi_{66}((64 \mid 40 \mid 0)_{2,66}) = (65 \mid 14 \mid 64)_{2,66}$$

$$3, 11 : \gamma_{66}((64 \mid 52 \mid 0)_{2,66}) = \pi_{66}((64 \mid 52 \mid 0)_{2,66}) = (65 \mid 38 \mid 64)_{2,66}$$

$$4, 12 : \gamma_{66}((64 \mid 53 \mid 0)_{2,66}) = \pi_{66}((64 \mid 53 \mid 0)_{2,66}) = (65 \mid 40 \mid 64)_{2,66}$$

$$5, 13 : \gamma_{66}((64 \mid 57 \mid 0)_{2,66}) = \pi_{66}((64 \mid 57 \mid 0)_{2,66}) = (65 \mid 48 \mid 64)_{2,66}$$

$$6, 14 : \gamma_{66}((64 \mid 59 \mid 0)_{2,66}) = \pi_{66}((64 \mid 59 \mid 0)_{2,66}) = (65 \mid 52 \mid 64)_{2,66}$$

$$10, 11 : \gamma_{66}^{27}((64 \mid 21 \mid 65)_{2,66}) = \gamma_{66}^{2}((64 \mid 38 \mid 65)_{2,66}) = (65 \mid 10 \mid 9 \mid 64)_{3,66}$$

On trace alors sur un même graphique les neufs entiers :

$7, 8, 9, 11, 12, 13, 14, 15, 16.$

Pour chacun de ces entiers $n$, on regarde la courbe :

$$k \in \{1, \dots, 10^6\} \mapsto d_{66}(\gamma_{66}^k(n)).$$

On s'aperçoit que pour ces 9 nombres on a :

$$d_{66}(\gamma_{66}^{10^6}(n)) \geq 40 000$$

et que l'allure générale est croissante en fonction de $k$. Il semblerait que ces nombres soient québecois.
<figure><img src="image_8.png" /></figure>
A.6 Nombres celtes et siciliens de degré 1

On a montré simplement que tout nombre de degré 0 est normand en base $b$. On s'est demandé si tout nombre de degré 1 est normand en base $b$. La réponse est non : il y a des nombres celtes, j'ignore s'il y a des nombres québecois.

• **Nombres celtes.** Tout d'abord on a des nombres celtes, en voici quelques exemples :

♠ $n := (778 | 739)_{1,779}$. Il est celte en base 779, on a :

$$ \mathrm{Id}_{779}^{\dagger}(n) = (1,8) , \quad \tau_{779}(n) = (740 | 699 | 739)_{2,779}; $$

♠ $n := (1795 | 1750)_{1,1796}$. Il est celte en base 1796, on a :

$$ \mathrm{Id}_{1796}^{\dagger}(n) = (1,8) , \quad \tau_{1796}(n) = (1751 | 1704 | 1750)_{2,1796}; $$

♠ $n := (3590 | 3545)_{1,3591}$. Il est celte en base 3591, on a :

$$ \mathrm{Id}_{3591}^{\dagger}(n) = (1,8) , \quad \tau_{3591}(n) = (3546 | 3499 | 3545)_{2,3591}. $$

• **Nombres siciliens.** En ragardant en base $b$ inférieur à 5000, on trouve qu'il y a aussi quatres bases problématiques où on a des nombres siciliens d'ordre au moins $2.10^5$ : les bases 258, 512, 1024 et 4096. On regarde alors les quatre entiers :

<table><thead><tr><th>N°</th><th>n</th></tr></thead><tbody><tr><td>1</td><td>66 305 = (257 | 256)<sub>1,258</sub></td></tr><tr><td>2</td><td>261 631 = (511 | 510)<sub>1,512</sub></td></tr><tr><td>3</td><td>261 631 = (1023 | 1022)<sub>1,1024</sub></td></tr><tr><td>4</td><td>261 631 = (4095 | 4094)<sub>1,4096</sub></td></tr></tbody></table>

On trace pour chacun de ces entiers $N$ la courbe :

$$ k \in \{1, \dots, K\} \mapsto d_b(\gamma_b^k(N)) $$

avec $K \in [2.10^5, 10^6]$. On s'aperçoit que pour ces 4 nombres on a :

$$ d_b(\gamma_b^K(N)) \geq 100 000 $$

et que l'allure général est croissante en fonction de $k$. Il semblerait que ces nombres soient aussi québecois.
<figure><img src="image_9.png" /></figure>
B Artifaille en Python

On finit ce texte avec l'ensemble des programmes exposés dans ce texte pour les personnes désireuses
de tester.

import math as ma
from typing import List, Tuple, Union, Dict

engoillement
# Base

Base = int

IntB = Tuple List[int], Base}

def int_to_base(n: int, b: Base) -> IntB:
    if n == []:
        return ([], b)
    elif n == 0:
        return ([0], b)
    else:
        B = []
        k = n
        while k > 0:
            B.append(k % b)
            k // = b
        return (B, b)

def base_to_int(N: IntB) -> int:
    B, b = N
    if B == []:
        return []
    else:
        s = 0
        p = 1
        for c in B:
            s += c * p
            p *= b
        return s

def deg_base(N: IntB) -> int | float:
    B, _ = N
    if B == []:
        return -ma.inf
    elif len(B) == 1:
        return 0
    else:
        d = len(B) - 1
        while B[d] == 0:
            d -= 1
        return d
def val_base(N: IntB) -> int | float:

B, _ = N

if B == [] or B == [0]:

return ma.inf

else:

v = 0

while B[v] == 0:

v += 1

return v

def add_base(N: IntB, M: IntB) -> IntB: # len(N[0]) = len(M[0])

R, s = [], 0

B, C, b = M[0], *N

for i in range(len(B)):

s = B[i] + C[i] + s

R = R + [s % b]

s = s // b

return (R + (s * [1]), b)

def compare_base(N: IntB, M: IntB) -> bool: # N <= M?

B, C = N[0], M[0]

if len(B) != len(C):

return len(B) < len(C)

for i in range(len(B) - 1, -1, -1):

if B[i] > C[i]:

return False

elif B[i] < C[i]:

return True

return True

def plus_1(N: IntB) -> IntB:

B, b = N

c = 1

for i in range(len(B)):

B[i] += c

if B[i] < b:

return (B, b)

B[i] = 0

B.append(1)

return (B, b)

def latex_IntB(N: IntB) -> str:

B, b = N

s = '\\ |\| '.join([str(B[-i-1]) for i in range(len(B))])

return '\\left(' + s + '\\right)_{' + str(len(B) - 1) + ', ' + str(b) + '}'

def latex_list_IntB(L: List List[int]], b: Base) -> str:

return ',\\ '.join([latex_IntB((x, b)) for x in L])
engoillement

# Opérations de base

## Opérations de base

def est_red(N: IntB) -> bool:
    B, _ = N
    if B == []:
        return False
    return B[0] == B[-1]

def rg_red(N: IntB) -> int:
    if len(N[0]) <= 2:
        return int est_red(N)
    elif est_red(N):
        return 1 + rg_red((N[0][1: -1], N[1]))
    else:
        return 0

def est_pal(N: IntB) -> bool:
    B, _ = N
    if B == []:
        return False
    return B == B[: : -1]

def rho_fct(N: IntB) -> IntB:
    r = rg_red(N)
    return (N[0][r: len(N[0]) - r], N[1])

def mu_fct(N: IntB) -> IntB:
    return (N[0][ : : -1], N[1])

def pi_fct(N: IntB) -> IntB:
    B, b = N
    R, s = [], 0
    for k in range(len(B)):
        s = B[k] + B[-k - 1] + s
        R.append(s % b)
        s // = b
    if s:
        R.append(1)
    return (R, b)

def gamma_fct(N: IntB) -> IntB:
    if est_red(N):
        return rho_fct((N[0][1: -1], N[1]))
    else:
        return pi_fct(N)
```python
def est_elingard(N: IntB) -> bool:
    if est_red(N):
        return False
    else:
        B, b = N
        d = len(B)
        B, b = pi_fct((list(B), b))
        return len(B) > d and not est_red((B, b))
```

```python
def elingard_fct(N: IntB) -> IntB:
    if est_red(N):
        return False
    else:
        d = len(N[0])
        while len(N[0]) == d:
            NO = list(N)
            N = pi_fct(N)
            if est_elingard(NO):
                return NO
        else:
            return False
```

```python
def kappa_fct(N: IntB) -> IntB:
    B, b = N
    for k in range(len(B) // 2):
        a = B[k] + B[-k - 1]
        B[k], B[-k - 1] = max(0, a - b + 1), min(a, b - 1)
    return (B, b)
```

```python
def est_duc(N: IntB) -> bool:
    return kappa_fct((list(N[0]), N[1])) == N
```

```python
def kappaDag_fct(N: IntB) -> IntB:
    B, b = N
    d = len(B)
    while True:
        if est_red((B, b)):
            return False
        B0, _ = pi_fct((B, b))
        if len(B0) > d:
            return kappa_fct((B, b))
        B = list(B0)
```

```python
def tin(N: IntB, k:int) -> int:
    B, b = N
    d = len(B)
    i = 0
    while len(B) <= d + k:
        B, _ = pi_fct((B, b))
        i += 1
    return i - 1
```
```python
def est_duc_elingard(N: IntB) -> bool:
    return est_elingard(N) and est_duc(N)
```

```python
def est_boutin(N: IntB, k:int) -> bool:
    B, b = N
d = len(B)
while len(B) <= d + k:
    if est_red((B, b)):
        return False
    B, _ = pi_fct((B, b))
return True
```

```
##########
# suites normandes
##########
```

```python
def suite_normande(N, VOL=False, ID=False, LIST=False,
                    INF=(10 ** 4, 0, 10), INF_DEG = (1, 10 ** 3, 1000)):
    B, b = N
    S = [B]
    t_ID = []
    D = {'b': b}
    for i in range(1, INF[0]):
        if est_red((B, b)):
            B, _ = rho_fct((B[1: -1], b))
            t_ID.append(0)
        else:
            B, _ = pi_fct((B, b))
            t_ID.append(1)
    if B in S:
        l = [S.index(B), i - S.index(B)]
        v_ID, c_ID = t_ID[: S.index(B)], t_ID[S.index(B):]
        D['id'] = {'V': (1[0], (v_ID.count(0), v_ID.count(1))) + ID * (v_ID, )}
        D['id'][ 'C'] = (1[1], (c_ID.count(0), c_ID.count(1))) + ID * (c_ID, )
        D['min_c'] = min(S[S.index(B):], key=lambda x: base_to_int((x, b)))
    if LIST:
        D.update({'V': S[: S.index(B)], 'C': S[S.index(B): ]})
    return (False, D)
elif (VOL and B == []) or (not VOL and len(B) < len(N[0])):
    S.append []
    D['id'] = (i, ((t_ID.count(0), t_ID.count(1))) + ID * (t_ID, )
    if LIST:
        D.update({'S': S})
    return (True, D)
else:
    S.append(B)
D['id'] = (i, (t_ID.count(0), t_ID.count(1)))
if LIST:
    D.update({'V': S[INF[1]: INF[2]], 'inf': INF})
if INF_DEG:
    D['deg'] = (INF_DEG, [len(x) for x in S[slice(*INF_DEG)]])
return (ma.inf, D)
```
engoillement

# LISTES

## LISTES

def liste_B_db(d: int, b: base) -> List List[int]]:

L = [[i] for i in range(d != 0, b)]

for _ in range(d):

L = [[i] + x for i in range(b) for x in L]

return L

def liste_Ro0(d: int, b: base) -> List List[int]]:

if d == 0:

return []

else:

L = [[i] for i in range(1, b)]

for _ in range(d - 1):

L = [[i] + x for i in range(b) for x in L]

L = [[i] + x for i in range(b) for x in L if i != x[-1]]

return L

def liste_Ro0_bis(d: int, b: base) -> List List[int]]:

return [x for x in liste_B_db(d, b) if not est_red((x, b))]]

def liste_elingard(d: int, b: base) -> List List[int]]:

return [x for x in liste_Ro0(d, b) if est_elingard((list(x), b))]]

def liste_duc(d: int, b: base) -> List List[int]]:

return [x for x in liste_B_db(d, b) if est_duc((list(x), b))]]

def liste_duc_quasi_elingard(d: int, b: base) -> List List[int]]:

if d % 2 == 0:

L = [[j] for j in range(b)]

else:

L = []

if d >= 1:

A = [(max(0, j - b + 1), min(j, b - 1)) for j in range(2 * b - 1)]

for _ in range((d + 1) // 2 - 1):

L = [[a] + x + [b] for x in L for a, b in A]

A = [(max(0, j - b + 1), min(j, b - 1))

for j in range(b - 1, 2 * b - 2) if j - b + 1 != 2]

L = [[a] + x + [b] for x in L for a, b in A]

return L

def liste_duc_elingard_bis(d, b):

return [x for x in liste_Ro0(d, b) if est_duc_elingard((list(x), b))]]

def liste_duc_elingard(d, b):

return [x for x in liste_duc_quasi_elingard(d, b) if

x[0] + x[-1] >= b or est_elingard((list(x), b))]]
```python
def liste_riboutin(d, b, k):
    L = dict()
    i = 0
    for y in liste_quasi_duc_elingard(d, b):
        x = list(y)
        while len(x) <= d + 1 + k:
            B = list(x)
            if est_red((x, b)):
                B = False
                break
            x, _ = pi_fct((x, b))
        if B != False:
            B = tuple(B)
            if B not in L or not compare_base((L[B], b), (B, b)) :
                i += 1
                L[B] = y
    return list(L.values())
```
Finissons ce texte pour un hommage au Grand Corneille<fnref n="22" /> :

Cônèl', graund pouêt' fraunçais, d' not' Nourmaundie l' houreu,
J' voudrais, dauns not' prêchi, câosaer eun miot d' ta glouère,
Mais t' as paè bésouan d' cha por ténin dauns l' histouère
Es Lettr's eunn' tout' graund pllèch'! Tu t' débroûl's byin tout seu!

J' vas tout d' mêm' dyîr' déeus mots! Oh, no fait ch' qué no pueut!
M'n achocris', pardouné-m' la dounc et quitt' - mei faire!
Jé 'nn' érai paè por loung! Ch' est certain qu' i n' y a guère,
A dictaer eun sounet, d' risque d' attrapaer seu!

Y en a qui t' fount lé r'proch' d' avaer 'taè trop graundiose,
Dé n' mouortraer qu' des héros, mais, por mei, ch' est la chose
Qué d' vaunt qu' d' y'être écrivain, t' étais d' abord nourmaund!

Les syins qui dis'nt chenna s' sount paè, janmais d' la vie,
— Qu' no pense ch' qué no veut dé men lichouin d' paisaunt —
Avisaès qu' tes Romains 'taient naès en Nourmaundie!

A.-J. Desnouettes, Au grand corneille<fnref n="23" />

<footnote n="22">22. Pierre Corneille, aussi appelé "le Grand Corneille" (1606 - 1684), dramaturge et poète normand.</footnote>

<footnote n="23">23. A.-J. Desnouettes, *Sonnets cotentinais en parler populaire du pays*, Études Normandes, 101, pp. 173-200, (1958)</footnote>