Exercice 1
ITERATION 1
p <- crée.tableau n vrai;
premier <- []
pour k allant de 2 à n faire (* on parcourt le tableau pour tester chaque entier pour voir s'il est premier *)
i<-2
tant que i<k faire (* on avance dans le tableau jusqu'au prochain nombre premier *)
tant que p.(i) = faux faire
i <- i+1;
fait
si k mod i = 0 alors (* on regarde si le nombre est divisible par un nombre premier plus petit *)
p.(k) <- faux;
fin si
i<- i+1
fait
si p.(k) = vrai alors
premier <- premier + [k]; (* on ajoute le nombre au tableau s'il est premier *)
fin si
fait
premier;
#Supposons que k n'appartienne pas au tableau "premier".
Alors p.(k) est faux, il a donc été modifié par la boucle "si k mod i = 0 alors..." donc il y a avait un i plus petit que k le divisant don l n'est pas premier.
#supposons que p n'est pas premier
Alors il admet un diviseur premier dans [0;p] Ainsi la boucle "si k mod i = 0 alors..." va s'executer une fois au moins et p.(k) sera mis à "faux" donc la boucle "si p.(k) = vrai alors..." ne va jamais s'executer pour lui.
###temps de calcul?###
ITERATION 2
###à faire###
Exercice 2
1.
typage de fon1: (int -> float) -> (int -> int) -> 'a vect -> int -> float
typage de fon2: ('a -> 'b) -> (string -> 'a) -> string
typage de fon3: ('a -> float) -> (float -> 'a) -> int -> 'a -> float
typage de fon4: (string -> bool) -> bool array -> string -> int -> bool
2.
voir autre feuille.
Exercice 3