OCaml. Exercices sur les entiers

Exercice 1.
Écrire une fonction « diviseur : int -> int -> bool » testant si un premier entier en divise un second.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 2.
Écrire une fonction « ndays : int -> int » donnant le nombre de jours d’un mois de l’année (année non bissextile), en fonction de la position du moins dans l’année.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 3.
Écrire une fonction « ndigits : int -> int » donnant le nombre de chiffres d’un entier.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 4.
Écrire une fonction « fact : int -> int » calculant la factorielle d’un entier.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 5.
Écrire une fonction « cnp : int -> int -> int » donnant le coefficient binomial {\dbinom{n}{p}}.
On s’attachera à donner plusieurs versions différentes.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 6.
La suite de Fibonacci est définie par {F_{0}=0}, {F_{1}=1} et {F_{n}=F_{n-1}+F_{n-2}} pour {n\ge2}.
Écrire une fonction « fibo : int -> int » calculant le {n}-ième terme de la suite de Fibonacci.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 7.
Écrire simultanément deux fonctions récursives « pair : int -> bool » et « impair : int -> bool » s’appelant mutuellement, et qui disent si un entier donné est pair (impair) ou non.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 8.
La suite dite de Syracuse » est définie par {u_{0}=a\in \mathbb{N}^{*}} et {u_{n+1}=\begin{cases}u_{n}/2\text{\ si\ }u_n\text{\ est pair}\cr 3u_{n}+1\text{\ si\ }u_n\text{\ est impair}\end{cases}}
Une célèbre conjecture, non démontrée à ce jour, affirme que : {\forall\, a\in\mathbb{N}^{*},\;\exists\,n_{0}\in\mathbb{N},\;u_{n_{0}}=1}.
Écrire une fonction « syrac : int -> unit » affichant la suite des valeurs de {u_{0}=a} à {u_{n_{0}}=1}, séparées par des espaces, avec un saut de ligne final.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 9.
On multiplie deux entiers {a} et {b} de la manière suivante, dite « du paysan russe » : on divise {a} par {2} tant que c’est possible, en doublant {b}, sinon on décrémente {a} et on ajoute {b} au résultat.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 10.
Écrire une fonction « prime : int -> bool » testant si un entier strictement positif est premier.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 11.
Écrire une fonction « factor : int -> unit » affichant les facteurs premiers d’un entier {n} (chacun d’entre eux étant éventuellement répété autant que nécessaire).
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Exercice 12.
Écrire une fonction « randseg : int -> int -> int » renvoyant un entier aléatoire dans un segment {[a,b]}.
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez : Pour poursuivre votre exploration, vous pouvez : Mathprepa.fr est le site des mathématiques et de l'informatique des deux années des classes prépa scientifiques: plus de 2500 exercices et 200 problèmes (soigneusement corrigés), un cours complet (maths et info), plus de 400 sujets de concours, etc. Un contenu sans équivalent, dans une présentation fluide et professionnelle adaptée à tous les écrans, pour une souscription de 15€ (six mois), 25€ (un an) ou 35€ (deux ans).

Author: Jean-Michel Ferrard

Professeur de mathématiques en classe préparatoire aux grandes écoles.