Mathématiques

Question

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.

1 Réponse

  • 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.

Autres questions