Recursivite

Bonjour
Je viens au près de vous car j'ai du mal à concevoir des fonction récursive.

Si vous pouvez bien me proposé une fonction récursive pour ma fonction ci-dessous et aussi peut être m'explique le principe de la récursivité et aussi un conseil pour cela

Def pgd (n):
       a=1
       T=[ ]
        While a <= n :
                  If (n%a == 0):
                           T+=[a]
                            a+=1
                  else:
                            a+=1
        Return T [-1]



Le code je l'ai écrit direct au clavier comprenez les espace ne le prennez pas en compte

Cette fonction est sensé me donner le plus grand diviseur d'un nombre
Je pense que c'est évident que sa sois lui même ce diviseur ????

6 réponses

  1. Voici selon moi un code récursive
    Votre avis svp??


    Def pgd (n):
    a=0
    T=[ ]
    return pgdAux (n, a+1, T)

    Def pgdAux ( n, a, T):
    If a == n:
    Return a
    If n%a ==0:
    T+=[a]
    Return pgdAux (n,a+1,T)
    1. Contributeur
      ce n'est pas une bonne méthode pour chercher des diviseurs, pas plus que ton code de départ.
      si tu penses qu'un nombre est son diviseur, inutile de faire un programme.
  2. Oui oui

    Mais j'essaye de trouver une autre façon de faire comme vous l'avez dit

    Et je vous le transmet
    1. J'arrive pas à comprendre quand on dit méthode décroissante pourrez vous m'expliquer
      1. Contributeur
        aucune idée, es-tu certain d'avoir bien recopié l'énoncé?
    2. L'énoncé est de donner un algorithme capable de donner le plus grand diviseur d'un nombre par la méthode décroissante (perso j'ai comprend ce qu'il veut dire par méthode décroissante )
      J'ai fais un algorithme qui donne le plus grand diviseur et maintenant on nous demande d'en faire une fonction récursive
      1. Contributeur
        as-tu déjà appliqué la récursivité à d'autres problèmes?

        réfléchis à plusieurs techniques que tu pourrais utiliser si tu devais chercher le plus grand diviseur d'un nombre par la méthode décroissante, et que tu disposes d'une feuille et d'un crayon.
    3. Contributeur
      bonjour, il est souvent préférable, pour découvrir comment appliquer la récursivité, de ne pas partir d'un programme, mais de réfléchir au problème.
      as-tu déjà appliqué la récursivité à d'autres problèmes?
      quel est l'énoncé exact de ton exercice?

      réfléchis à plusieurs techniques que tu pourrais utiliser si tu devait chercher le plus grand diviseur d'un nombre, et que tu disposes d'une feuille et d'un crayon.