Forum Programmation.python besoin aide svp merci

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-11
20
sept.
2015

salut

Lors d'un travail en groupe, il nous a été demandé la chose suivante:
On nous demande de respecter ceci dans l'ordre:
1. Entrer un nombre entier
2. Si ce nombre est négatif, afficher un message d'erreur et recommencer le programme
3. Sinon, si ce nombre est 0, le programme termine.
4. Autrement, afficher la décomposition en produit de facteurs premiers du nombre:

On trouve le plus petit diviseur du nombre, en commençant par 2 ;
a- Afficher ce diviseur à l’écran
b- Diviser le nombre par ce diviseur, et recommencer les deux dernières étapes avec ce nombre (plus petit)
c- Éventuellement ce processus devra s’arrêter (à moi de trouver quand, voir ci-dessous)

  1. Une fois la liste affichée (donc tous les diviseurs, genre n=d1*d2*d3*…), poser la question : voulez-vous recommencer : oui ou non. si non, arrêter le programme, si oui, choisir un nouveau nombre ```

```je sais rien faire

cela fait 2 jours de cours et voilà l'examen à faire chez soi !

merci de m'aider les amis

  • # lire le cours, le comprendre, et appliquer

    Posté par  . Évalué à 8.

    je sais rien faire

    tu as suivi le cours ?
    tu as compris le cours ?

    il est 21h30, on est dimanche, j'espere que tu as au moins ecrit l'algoritme de ton programme ?

  • # suite

    Posté par  . Évalué à 2. Dernière modification le 21 septembre 2015 à 09:39.

    n = 1 # n'importe quelle valeur sauf 0
    while n!=0:
        n=int(input("Entrez un nombre entier:"))
        if n<0:
            print("n est négatif, erreur, recommencez")
        elif n>0:
            print("n est positif, suite du programme")
            d = 2
            while n>1:
                while n%d==0:
                    n = n//d
                    print("facteur trouvé:", d)
                d += 1
        print()    
    retry = int(input("Voulez vous recommencer (oui=1, non=2) :"))
    if retry == 2:   # Pas de quotes autour de l'int !!!
        print( "Bye bye" )
    • [^] # Re: suite

      Posté par  (site web personnel) . Évalué à 2.

      Regarde la doc de rédaction, il y a moyen de mettre du code propre dans les posts:

      n = 1 # n'importe quelle valeur sauf 0
      while n!=0:
          n=int(input("Entrez un nombre entier:"))

      Les deux lignes ci-dessous, utilité ? (si tu y passes, c'est que n est non nul) Et il manque probablement un opérateur de test d'égalité ==.

      if n0:
          print("n est positif, suite du programme")
      d = 2
      while n>1:
          while n%d==0:
              n = n//d
              print("facteur trouvé:", d)
          d += 1
      print()

      Pour le code ci-dessous:

      retry = int(input("Voulez vous recommencer (oui=1, non=2) :"))
      if retry == 2: # Pas de quotes autour de l'int !!!
      print( "Bye bye" )

      Il y a un problème de logique ; si tu veux que tout ce qui est au dessus soit répété… alors tout ce qui est au dessus doit être dans une boucle, du genre:

      continuer = True
      while continuer:
          traitement
          retry = 
          continuer = (retry != 2)
      print( "Bye bye" )

      Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

      • [^] # Re: suite

        Posté par  . Évalué à 1. Dernière modification le 21 septembre 2015 à 16:45.

        merci lolop

        effectivement, j'ai mal recopié, dans la section

            if n0:
                print("n est positif, suite du programme")

        il faut lire:

            if n**==**0:
                print("n est positif, suite du programme")

        enfin, dans la section

            continuer = True
            while continuer:
                traitement
                retry = int(input("Voulez vous recommencer (oui=1, non=2) :"))
                continuer = (retry != 2)
            print( "Bye bye" )

        qu'entends-tu par .. traitement .. : est-ce n=1 ou bien n = n//d

        merci mon ami

        • [^] # Re: suite

          Posté par  (site web personnel) . Évalué à 3.

          Là ça relève de l'exercice: quel traitement voudrais-tu répéter ?

          (indice: le traitement n'est pas nécessairement limité à une seule ligne, il peut être constitué de plusieurs lignes, voir de blocs d'instructions composées [if while for…])

          Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.