Zoofast.fr rend la recherche de réponses rapide et facile. Posez n'importe quelle question et recevez des réponses détaillées et précises de la part de notre communauté d'experts.

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.