Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Aide sur programation diviseur
kevkev62 le 02/01/2011 à 05:43
Voila mon programme:

->P
:Prompt N
:Effliste L1
:For (A,2,N-1)
:pgcd(N,A)->T
:If TDiferent de(je sais pas fair le egal / ^^ )1 et PartDéc(T)=0
:Then
:p+1->P
:T->L1(P)
:End
:End
:Pause L1
Machine:TI 82 stats Fr
Et voila le probleme c'est que je fini avec genre des centaine de fois le meme diviseur.Je voudrais fair en sorte que si T deja dans L1 , ne pas le stoquer, mais je ne trouve pas.Je voudrais qu'il ne mafiche que les diviseurs, et pas 100fois le meme et qui fait que je ne m'y retrouve plus.C'est assez urgent.Sa fait 1semaine que je le cherche ><
Merci a celui qui voudra bien m'aidé, et bonne année a tous.
lover-lol le 02/01/2011 à 11:38
ça marcherait pas un ?
Code
If L1(P)=P
Then
Goto ...
kevkev62 le 02/01/2011 à 16:28
Mais P sa reprensente L1 donc si
L1(p)=P sa me servirais a rien non?
A moin que je comprend mal, j'ai pas l'habitude de codé.linkakro le 03/01/2011 à 00:26
P représente la dimension de la liste et rien d'autre.
Code
:0->P
:Prompt N
:{0->L1
:For (A,2,N-1)
:pgcd(N,A)->T
:1->B
:For(W,1,P
:If L1(W)=T
:0->B
:End
:If T=/=1 et PartDéc(T)=0 et B
:Then
:p+1->P
:T->L1(P)
:End
:End
:Pause L1
Je l'ai fait au plus simple, mais des suppléments peuvent régler des problèmes de vitesse.
Si je comprenais mieux le but de ton programme, je pourrais mieux t'aider. Car une restructuration radicale pourrais peut-être simplifier.
kevkev62 le 03/01/2011 à 07:57
C'est en faite un DM a rendre pour demain ou l'enoncé me dit clairement, au depart un programme prouvant que N est pas premier. Donc j'utilisé for (A,2,N-1) et non RacineCarréde N car l'énoncé le dit.
Et la seconde parti du devoir consiste a modifier le premier programme pour fair en sorte qu'il donne les diviseur d'un nombre. J'ai trouvé comment et je cherche comment fair pour faire:
Si T deja existant dans L1 ne pas stoquer.
Car je me retrouve avec une grande liste ou se trouve plusieur fois les meme nombre.darkmory le 03/01/2011 à 20:32
if L1(coordonnée de T dans la liste) =0
T -> L1
...
après a adapté mais l'idée est là!kevkev62 le 03/01/2011 à 21:08
Je comprend pas vraiment se que vous me dites, etant nouveau dans les programmes, j'ai deja eu du mal a faire le debut, lol , donc en faite vous avez bien compris que je veux juste que T ne soit pas stoquer Plusieur fois dans L1.
Si a partir de mon programme jepeut le faire, dite moi svplinkakro le 04/01/2011 à 23:07
Et le programme que j'ai déjà posté, c'est quoi à votre avis ?
Il règle ce problème (si je ne me suis pas planté)
-Et j'ai mieux pour les diviseurs. Parmi une solution pgcd et une solution division.
-Et puis un pgcd ne peut pas être nul
Une base simple
Code
:Prompt N
:1->B
:For (A,2,N-1)
:pgcd(N,A)->T
:If T=A
:Disp "PAS PREMIER
:If T=A
:0->B
:End
:If B
:Disp "PREMIER
version complète
Code
:0->P
:Prompt N
:{0->L1
:For (A,2,N-1)
:pgcd(N,A)->T
:If T=A
:Then
:p+1->P
:T->L1(P)
:End
:End
:Pause L1
:If P
:Disp "PAS PREMIER
:If not(P
:Disp "PREMIER
===================================
darkmory : Regarde La boucle For(W,...) dans mon premier prog.
Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.