Sauter au contenu
Logo image

Exercices 2.5 Exercices de programmation

1. Le crible d’Ératosthène.

Une méthode pour calculer tous les nombres premiers inférieurs à un certain entier positif fixé \(N\) consiste à lister tous les entiers \(n\) tels que \(1 \lt n \lt N\text{.}\) Commencez par éliminer tous les multiples de \(2\text{.}\) Ensuite, éliminez tous les multiples de \(3\text{.}\) Éliminez maintenant tous les multiples de \(5\text{.}\) Remarquez que \(4\) a déjà été barré. Continuez ainsi, en notant qu’il n’est pas nécessaire d’aller jusqu’à \(N\) ; il suffit de s’arrêter à \(\sqrt{N}\text{.}\) En utilisant cette méthode, calculez tous les nombres premiers inférieurs à \(N = 250\text{.}\) On peut aussi utiliser cette méthode pour trouver tous les entiers premiers avec un entier \(N\text{.}\) Il suffit d’éliminer les facteurs premiers de \(N\) et tous leurs multiples. En utilisant cette méthode, trouvez tous les entiers premiers avec \(N= 120\text{.}\) En utilisant le crible d’Ératosthène, écrivez un programme qui calculera tous les nombres premiers inférieurs à un entier \(N\text{.}\)

2.

Soit \({\mathbb N}^0 = {\mathbb N} \cup \{ 0 \}\text{.}\) La fonction d’Ackermann est la fonction \(A :{\mathbb N}^0 \times {\mathbb N}^0 \rightarrow {\mathbb N}^0\) définie par les équations
\begin{align*} A(0, y) & = y + 1,\\ A(x + 1, 0) & = A(x, 1),\\ A(x + 1, y + 1) & = A(x, A(x + 1, y))\text{.} \end{align*}
Utilisez cette définition pour calculer \(A(3, 1)\text{.}\) Écrivez un programme pour évaluer la fonction d’Ackermann. Modifiez le programme pour compter le nombre d’instructions exécutées lors de l’évaluation de la fonction d’Ackermann. Combien d’instructions sont exécutées lors de l’évaluation de \(A(4, 1)\) ? Et de \(A(5, 1)\) ?

3.

Écrivez un programme informatique qui implémentera l’algorithme d’Euclide. Le programme doit accepter deux entiers positifs \(a\) et \(b\) en entrée et doit afficher \(\gcd( a,b)\) ainsi que des entiers \(r\) et \(s\) tels que
\begin{equation*} \gcd( a,b) = ra + sb\text{.} \end{equation*}