Bonjour j'ai besoin d'aide pour mon exo , je ne comprends pas .
Voici un algorithme.
Fonction mystere(n)k ← 2
Tant que k ne divise pas nk ← k + 1
Fin TantQueSi k = n alors renvoyer "vrai" sinon renvoyer "faux"

J’ai testé et mystere(131 071) me renvoie "vrai". Que cela signifie-t-il pour l’entier 131 071 ? Expliquer en argumentant de manière claire et compréhensible.


Sagot :

Réponse:

Alors c'est très simple je t'explique :

Juste pour commencer, si k divise n, ça veut dire que n÷k = un nombre ENTIER

Ta fonction mystère prend un chiffre. Nous on va faire un exemple, par exemple, n=25

Tu sais aussi que k=2

Tant que k ne divise pas n, tu on fait k=k+1 et on réessaie.

Pour notre exemple, 2 ne divise pas 25 (on obtient un nombre décimal donc c'est pas bon)

Donc on fait k = k +1 = 2+1 = 3

On recommence : 3 ne divise pas 25, donc on continue

k = 3+1 = 4

4 ne divise pas 25 donc on recommence

k = 4+1 = 5

Là, 5 divisé 25 ! (25÷5 = 5)

Donc la boucle "tant que" s'arrête.

Ensuite ta fonction regarde si k=n et si c'est le cas, elle dit "vrai", sinon elle dit "faux"

Dans notre exemple, k = 5 et n=25

Donc k =/= n

Donc la fonction va envoyer "FAUX"

Donc si tu remarques, la fonction envoie "vrai" quand le premier diviseur de n qu'elle trouve est n.

Donc elle te renvoie "vrai" pour les chiffres qui ont pour seuls diviseurs eux-mêmes ! Donc les chiffres premiers.

En écrivant n=131071, l'algorithme à dit "vrai".

Donc le plus petit diviseur de 131 071 que la fonction à trouvé est lui-même, donc c'est un nombre premier.