©Arnaud de Saint Julien -Informatique- MPSI Lycée La Merci 2016-2017 2
3. Tester avec les nombres de Mersenne 1suivants : n= 2p−1 avec p= 18,19,31. Si le temps de calcul pour
p= 31 est trop long, améliorer votre algorithme en diminuant le nombre de divisions nécessaires.
4. Écrire une fonction premier_suivant qui prend en argument un entier naturel net qui renvoie le plus
petit nombre premier p>n.
Exercice 10 (Somme de deux dés)
1. Écrire un programme qui modélise la situation suivante : on lance deux dés jusqu’à ce que la somme des
deux dés soit égale à 12. Le programme affichera la somme obtenue à chaque lancer.
2. Modifier le programme de sorte qu’il affiche aussi à la fin le nombre de lancers nécessaires pour atteindre
12.
3. Effectuer 10000 lancers et compter le nombre de fois où la somme 7 a été obtenue. Comment peut-on en
déduire une estimation de la probalité de faire 7 avec deux dés ?
3 Plus délicat
Exercice 11 (Project Euler, Problem 1) If we list all the natural numbers below 10 that are multiples of
3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
Exercice 12 (Une somme double) Calculer les sommes
50
X
i=1
20
X
j=1
(i+j)iet
50
X
i=1
i
X
j=1
(i+j)i.
Combien d’additions sont effectuées ?
Exercice 13 (Valuation dyadique) Écrire une fonction valuation_dyadique qui prend en argument un
entier naturel net renvoie le plus grand entier ktel que 2kdivise n.
Exercice 14 (Équation de Pell-Fermat) Trouver 5 couples d’entiers naturels (x, y) solutions de l’équation
de Pell-Fermat x2−11y2= 1.
Exercice 15 (Dessiner des rectangles) (tiré du site France IOI)
1. Écrire une procédure qui prend en paramètre un caractère et deux entiers, et qui affiche un rectangle rempli
du caractère fourni, dont le nombre de lignes et de colonnes sont les entiers fournis. Appeler ensuite cette
fonction pour afficher un rectangle de 4 lignes de 10 caractères ’X’, puis un rectangle de 6 lignes de 5
caractères ’O’. On devra alors obtenir
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
2. Même question mais cette fois-ci avec un triangle du type ci-dessous.
1. Les nombres de Mersenne fournissent des exemples de très grands nombres premiers. Attention, ils ne sont pas tous premiers,
si Mp= 2p−1 est premier, alors pest premier. La réciproque est fausse. Le test de Lucas est un algorithme extrêmement efficace
pour tester la primalité des nombres de Mersenne.