Bonjour notre prof nous a demander de faire un programme qui afficherer tous les diviseurs d'un entier naturel.
Mais je en métrise pas trop la programmation sur calculette donc si quelqu'un pourer m'aider.
Bonjour,
Est ce que tu as déjà une idée de la façon dont tu vas procéder, avant de vouloir écrire le programme ?
sincèrement non pas du tout parce que je ne voit pas comment en prenant un nombre on puisse trouver tout les diviseur d'un entier. Car dans certain cas il peut y en avoir beaucoup.
J'ai pencer que l'on pourer prendre le nombre et le diviser par 2,3,5,7 et voir si le résultat est un entier mais c'est tout.
Y'a un bon début dans ta dernière phrase, mais pourquoi on ne le diviserais pas non plus par 4 ou 6 ?
4 c'est divisible par 2 et 6 par 3 donc je prend les plus petits diviseurs, mais apré il peut et il y a aussi des nombre premier qui divise un entiercar tout entier anturel positife et le produit de deux nombre premier.
Oui, mais ici, on ne te demandes pas les "plus petits diviseurs", mais TOUS les diviseurs d'un nombre.
Déjà, es-tu d'accord pour dire qu'un diviseur d'un nombre est forcément inférieur ou égal à ce nombre ?
Ensuite, comment pourrait-on faire pour savoir si un nombre en divise un autre ?
Pour la 1ere question je direr oui et je rajouterer que l'on peut avoir un intervalle pour trouver tout les diviseur d'un nombre en prenant sa racine carré (ex: 10 -->V10~3.16 donc on peut esayer:
10/3~3.33 donc pas un entier
10/2=5
10/1=10 donc 4 diviseur (1;2;5;10)
Et pour savoir comment faire pour savoir si un nombre un divise un autre je ne sais pas... . A par dire que les nombre doive être des entiers non...
La racine carré du nombre, c'est plutot lié aux diviseurs premiers de ce nombre.
Pour trouver tous les diviseurs d'un nombre n, on va diviser successivement ce nombre n par tous les nombres plus petits, et voir si on obtient un nombre entier.
on entre un nbre entier N
on teste pour k=1 jusqu'à k=N : N/k est-il un entier ?(N/k=partie entière de N/k)
on affiche le nombre k si le test est positf
sinon on continue en passant au suivant (c'est une boucle de k=1 à k=n)
quand on arrive à k=N, le programme s'arrête
on peut faire plus court mais c'est encore plus compliqué, on verra plus tard
Je ne vois pas comment la partie entière de N/k n,e serait pas entière ???
On peut aussi passer par le reste de la division ( mod() ) mais je crois que Sephiro n'y connait rien en programmation ....
Faut y aller doucement
Lol merci de votre compréhension mdr.
Je vais essayer avec se que vous m'avez dit là.
Mais cmt dit-on a la calculette N/k est-il un entier?
Et aussi comment dire a la calculette que A c'est tout les entier de 1 a N. N étant le nombre demander.
Je t'expose le programme que je ferais ( je n'ai pas pu le tester par contre )
divis()
Prgm
Disp "Entrez une valeur de n"
Prompt n
Local k
For k,1,n
If mod(n,k)=0 Then
Disp k
EndIf
EndFor
EndPrgm
J'ai une TI-82 je vien de regarder, je n'ai pas de fonciton qui s'appelle mod( )...
Je t'explique maintenant les différentes étapes :
pas de reste non plus, elle est en anglais la Ti-82 stats
et le locale k je ne l'ai pas non plus ... mais j'ai STO se n'est pas équivalent?
attend 5 minutes que je me renseigne un peu sur la TI-82, apparemment c'est pas le même language que la 89 ....
Mdr non je ne pence pas lol... vu la diférence de prix je doute fortement qu'elle sont les meme foncitonaliter niveau programme merci de te doner tout ce mal pour m'aider
Apparemment, le PROMPT, DISP existent sur la ti.
le programme pourrait donner :
Disp "Entrez une valeur de n"
Prompt n
1 -> k
While k <= n
If n/k=fPart(n/k)
Then
Disp k
End
k+1 -> k
End
End
Je viens de comprendre ce que voulais dire garnouille par la partie entière ( que j'utilise là )
le '->' doit etre la flèche STO je pense
sinon, je ne sais pas comment on fait le signe inférieur ou égal sur la TI 82
Oui je pence avoir bien recopier le programme et:
Déja il faut enlever un End et le programme tourne et apré boum done et aucun diviseur n'est aficher...
J'ai réfléchi essayer de comprendre le programme, il m'a l'air corect a par fPart cela signifie quoi?
Et quand je fait fPart sur ma calculette avec une valeur (1 10 etc..) il me donne comme résulta 0, c'est peut être là l'erreur non?
Bonsoir à tous,
Sephiro, cherche la commande qui calcule la partie entière, et remplace là à la place de fPart ( si c'est pas celle là )
Oui elle existe elle est mise mais le programme se lance et rien ne se passe et quand (en dehors du programme) je fait fPart(2) ou fPart(2/3) il me donne 0. donc c'est logique qui ne trouve aucun diviseur a N.
Je pence avoir trouver fPart ne marche que sur ]-1;1[ tout les autre valeur =0.
Oki merci beaucoup sa amrche . j'aurais encore quelque chose a demander voila en faite si c'est un petit nombre c'est bon mais dés que sa sera un grand nombre je ne véré pas tout les diviseur comment je peut faire pour tous les voir en une ligne ou pouvoir remonter dans lécran SVP?
Maintenant que ça marche, essaye de bien comprendre le programme, et vérifie sur un nombre assez petit ( genre 6 ) qu'il affiche tous les diviseurs ( dont 1 et le nombre lui-même )
Pour afficher tous les diviseurs, ça va etre trop compliqué à faire, en tout cas je connais pas de méthode simple
Y'a peut-etre moyen de trouver une commande qui permette de faire un saut de ligne ...
Si l'on rajoute la commande Pause, cela permet d'attendre que l'utilisateur appuie sur Enter avant d'enchaîner
Estelle
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :