Salut
si je ne suis pas au bon endroit, veuillez me pardonner et me faire suivre, merci les amis
Voilà, je passe du monde C++ à Python et c'est la galère
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:
voici ce que j'ai fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 n=int(input("Entrez un nombre entier:")) if n<0: print("n est négatif, erreur, recommencez") elif n==0: print("n est nul, Fin du programme") else: print("n est positif, Poursuivez")
le seul hic, c'est le côté recommencer, en ligne 2, comment faire ?
Suite de l'énoncé
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)
5. Une fois la liste affichée (donc tous les diviseurs), recommencer le programme avec un nouveau nombre
la suite, et là, c'est la galère
voici ce que je veux, via un exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 d=int(input("Entrez le plus petit diviseur: 2")) n=n/d print(n,"n/d= ",n/d) if n=(2,3,5,7,11,13): n/d=1 return0;
le nombre (n): 20
le diviseur le plus petit (d) :2
20/2 = 10
je reprend le 10 et je le divise par 2
10/2 = 5
5 n'est divisible que par lui-même donc
5/5 = 1
en somme n=n/d => 10=20/2 => 5=10/2 => 5/5=1
je fais commencer pour écrire cela en python
ensuite, je ne veux conserver que les nombre entier, donc comment ne retenir que les résultats n/d entiers (int) et ne pas conserver les float (décimales)
comment demander à Python de faire 2, puis essayer 3, 4, 5, .... et les afficher
au final, et cela j'arrive uniquement à le faire sous forme mathématique, c'est d.'écrire le résultat final : 20 = 2*2*5
une fois cela fait, je veux aussi recommencer le programme (genre voulez vous recomm3encer) au départ en choisissant un nouveau nombre : j'ai pensé à return; mais ça ne marche pas
j'ai Python: 3.4
Vraiment besoin d'aide
•
Partager