Algorithmes en Arithmétique
Table des matières cliquable
2. Min et max pour deux entiers
3. Vérification de la décomposition en somme de quatre carrés
4. Notation des colonnes en mode Excel
7. Décomposition de Lagrange et problème de Waring
10. Dénombrements
1. Produit de deux entiers
On se donne deux nombres entiers $a$ et $b$. Ecrire un algorithme qui calcule le produit $c$ de $a$ et $b$.
On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$ et $\mathtt{valC}$ les variables algorithmiques correspondantes.
Cliquez et recliquez ici pour avoir des exemples de valeur de $a$ et $b$.
a = b =Pour valider l'algorithme associé, le nom de l'exercice est prodEnt.
2. Min et max pour deux entiers
On se donne deux nombres entiers $a$ et $b$. Ecrire un algorithme qui calcule le minimum $p$ et le maximum $g$ de $a$ et $b$.
On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$, $\mathtt{petit}$ et $\mathtt{grand}$ les variables algorithmiques correspondantes.
Cliquez et recliquez ici pour avoir des exemples de valeur de $a$ et $b$.
a = b =Pour valider l'algorithme associé, le nom de l'exercice est petitgrand.
3. Vérification de la décomposition en somme de quatre carrés
On se donne cinq nombres $a, b, c, d$ et $n$. Ecrire un algorithme qui indique si la différence $e$ entre $n$ et la somme $a^2+b^2+c^2+d^2$ est nulle ou pas. Pour cela on calculera la valeur absolue $e$ de cette différence.
On nommera respectivement $\mathtt{valA}$, $\mathtt{valB}$, $\mathtt{valC}$, $\mathtt{valD}$, $\mathtt{valN}$ et $\mathtt{valE}$ les variables algorithmiques correspondantes.
Cliquez et recliquez ici pour avoir des exemples de valeur de $a, b, c, d$ et $n$.
a = ; b = ; c = ; d = ; n =La validation de cet exercice vient juste tester la valeur de $e$.
Pour valider l'algorithme associé, le nom de l'exercice est verifDecomp4c.
4. Notation des colonnes en mode Excel
Le logiciel Excel et ses "collègues" des familles *Office ont une «curieuse et sympathique» façon de nommer les colonnes. Les colonnes de 1 à 26 se nomment respectivement A, B,C... c'est-à-dire à l'aide d'une seule lettre majuscule. Ensuite, de 27 à 702 on passe aux mots à deux lettres majuscules exactement et ainsi de suite. Trouver comment convertir une notation Excel $c$ en le nombre entier correspondant puis trouver comment convertir un nombre entier positif $n$ en notation Excel $c$.
Cliquez et recliquez ici pour avoir des exemples de valeur de $n$ et $c$.
$n$ = ; $c$ =
$c$ = ; $n$ =2.1 D'une chaine à un nombre
Ecrire un algorithme qui convertit une notation Excel $c$ en le nombre entier correspondant. On nommera respectivement $\mathtt{colExcel}$ la variable d'entrée (chaine de caractères) et $\mathtt{numCol}$ la variable de sortie (numérique). On pourra utiliser le code suivant pour disposer de correspondances entre lettre et nombre :
# correspondances entre les lettres de l'alphabet et leur valeur numérique affecter base <-- 26 affecter valLettre <-- initialiseTableau(base,0) affecter valLettre["A"] <-- 1 affecter valLettre["B"] <-- 2 affecter valLettre["C"] <-- 3 affecter valLettre["D"] <-- 4 affecter valLettre["E"] <-- 5 affecter valLettre["F"] <-- 6 affecter valLettre["G"] <-- 7 affecter valLettre["H"] <-- 8 affecter valLettre["I"] <-- 9 affecter valLettre["J"] <-- 10 affecter valLettre["K"] <-- 11 affecter valLettre["L"] <-- 12 affecter valLettre["M"] <-- 13 affecter valLettre["N"] <-- 14 affecter valLettre["O"] <-- 15 affecter valLettre["P"] <-- 16 affecter valLettre["Q"] <-- 17 affecter valLettre["R"] <-- 18 affecter valLettre["S"] <-- 19 affecter valLettre["T"] <-- 20 affecter valLettre["U"] <-- 21 affecter valLettre["V"] <-- 22 affecter valLettre["W"] <-- 23 affecter valLettre["X"] <-- 24 affecter valLettre["Y"] <-- 25 affecter valLettre["Z"] <-- 26Pour valider l'algorithme associé, le nom de l'exercice est colExcelEnNum.
2.2 D'un nombre chaine à une chaine
Ecrire un algorithme qui convertit un nombre entier strictement positif correspondant à un numéro de colonne en sa notation Excel $c$. On nommera respectivement $\mathtt{numCol}$ la variable d'entrée (numérique) et $\mathtt{colExcel}$ la variable de sortie (chaine de caractères).
Pour valider l'algorithme associé, le nom de l'exercice est numColExcelEnChaine.
5. Nombres premiers
Un nombre entier $n$ strictement positif est dit premier s'il ne possède que 2 diviseurs distincts, 1 et lui-même. En particulier, 1 n'est donc pas un nombre premier. Par contre 2, 3, 5 et 7 le sont. Ecrire un algorihme qui renvoie 1 si $n$ est premier et 0 sinon.
Modifier ensuite l'algorithme pourqu'il affiche tous les nombres premiers entre 1 et 99. On essaiera de reproduire l'affichage suivant en matrice (10,10) où seuls les nombres premiers sont affichés.
Cliquer ici pour générer l'affichage.
6. Nombres parfaits
Un nombre entier strictement positif est dit parfait s'il est somme de ses diviseurs sauf lui-même. Ainsi 6, 28 et 496 sont les 3 premiers nombres parfaits. Ecrire un algorithme qui calcule et affiche les 4 premiers nombres parfaits. On les nommera $\mathtt{parfait1}$, $\mathtt{parfait2}$, $\mathtt{parfait3}$ et $\mathtt{parfait4}$.
Pourquoi est-ce difficile de trouver les 100 premiers nombres parfaits ?
Pour valider l'algorithme associé, le nom de l'exercice est parfaits.
7. Décomposition de Lagrange et problème de Waring
D'après le théorème de Lagrange-Bachet, tout entier positif est somme d'au plus quatre carrés. Par exemple, $20 = 3^2+3^2+1^2+1^2$. Cette décomposition n'est pas forcément unique. Ainsi $20 = 4^2+2^2+0^2+0^2$. Ecrire un algorihme qui affiche toutes les décompositions en somme de quatre carrés de $n$.
Raffiner ensuite l'algorithme pour qu'il n'affiche que les décompositions non équivalentes par permutation.
Combien faut-il de cubes au minimum pour décomposer un entier ?
8. Syracuse, premiers essais
La suite $(u_n)$ de Syracuse-Collatz d'un nombre $n$ = est définie par $u_0=n$ et $u_{n+1}=u_n/2$ si $u_n$ est pair, $u_{n+1}=(3*u_n+1)$ si $u_n$ est impair. Donner un algorihme qui à partir d'un nombre $n$ affiche les valeurs de sa suite de Syracuse-Collatz. On s'arrêtera lorsque $u_n$ vaut 1.
Cliquez et recliquez ici pour avoir des exemples de valeur de cette suite.
$n$ = ; $(u_n)$ =9. Syracuse, suite et fin
On nomme longueur (ou "temps de vol") de Syracuse du nombre $n$ le nombre de termes de la suite de Syracuse-Collatz de ce nombre nécessaires pour obtenir la valeur 1. Donner un algorihme qui fournit les $p$ plus grandes longueurs de Syracuse pour des nombres entre 1 et 1 million. On pourra par exemple prendre $p= 10$.
10. Dénombrements
On s'intéresse ici à des dénombrements usuels. Si $E$ est un ensemble à $n$ éléments et $F$ est un ensemble à $p$ éléments, combien y a-t-il de bijections de $E$ vers $F$ ? et d'injections ? et de surjections ? On pourra se limiter à $n$ et $p$ entre 1 et 10.
Retour à la page principale de (gH)