ESIEE IGI-3005 TP no2 (corrigé) 2016-2017
Quelques problèmes du projet Euler (corrigé)
Le projet Euler ( Project Euler, http://projecteuler.net) est un ensemble de
problèmes mathématico-informatiques, demandant des connaissances en mathéma-
tiques et en programmation pour être résolus.
Chacun de ces problèmes peut être programmé en Java, C ou Python (ou en tout
autre langage, et parfois même au papier-crayon), et, d’après les concepteurs du
projet, chaque problème, s’il est correctement analysé, pourra être résolu par un
programme s’exécutant en moins d’une minute même en utilisant un langage lent
sur une machine ancienne.
En vous inscrivant sur le site, vous pourrez soumettre une réponse à chaque pro-
blème (un nombre, une chaîne de caractères) et, si votre réponse est correcte, vous
pourrez accéder à un fil de discussion (solutions, commentaires) correspondant à
ce problème, ce qui vous donnera d’autres éléments de réflexion.
Le site est très correct (votre inscription ne vous amènera pas de propositions
d’achats, de spams, etc.). Un classement par niveau (un niveau tous les 25 pro-
blèmes résolus) vous permettra de juger votre progression et des récompenses vous
seront accordées lorsque certains problèmes seront résolus.
Voici les énoncés traduits en français des dix premiers problèmes du Project Euler
. Prenez en connaissance, choisissez en quatre (un par demi-heure) et résolvez-les.
Ne m’envoyez vos programmes que si vous les avez écrit vous-même et
si vous voulez avoir un avis ou un déboguage.
Note : certains calculs ou résultats dépassent la capacité des entiers standard
(C ou Java). Documentez-vous et utilisez le type long long (en C) ou la classe
BigInteger (en Java).
Exercice 1. Multiples de 3 ou de 5
Si l’on écrit tous les entiers naturels positifs inférieurs à 10 et multiples de 3ou de 5, on
obtient 3,5,6et 9. La somme de ces multiples vaut 23.
Quelle est la somme de tous les nombres inférieurs à 1 000 qui sont multiples de 3 ou de 5 ?
Corrigé
***************************************************************************
233168
Une première ébauche peut être la suivante :
int somme_mult_3_5(int n) {
int s = 0;
int i;
for (i = 0; i < n; ++i) {
if (i%3==0||i%5==0){
s += i;
}
–1/6–