1

Bonsoir !

Bon après avoir chercher pendant des heures et ce sans réponse je vous demande quelle est la solution la plus simple pour obtenir tous les diviseurs d'un nombre avec une ti89 titanium.
Cette calculatrice ne faisant pas ça à la base jai trouvé quelques programme qui faisant théoriquement cela mais aucun ne marchait.
Je n'ai pas réussit à le faire moi mm non plus..
Donc svp dite moi comment écrire un programme faisant cela ou donné moi un lien vers un programme qui marche !

Merci !!

Tom.

2

Alors attention, je n'ai jamais écrit de programme !

prgm
local a
local k
local n

prompt n

For k,0,n,1
n/k->a

If (int(a)*k) = n then (mais mettre int(a)=a est plus rapide en fait ^^)
disp a
endif
endfor

endprgm
Alors, c'est très lourd, et ça va bien bugguer (le if va mettre des années ^^)

Bon maintenant, c'est le moment de saigner mon bout de code ^^

edit *k rajouté (erreur d'inattention)
edit2 dlvar
edit3 : fôtes de frappes et pas delvar en fait grin

3

de mémoire, factor( ne le fait pas tout seul ?
Ancien pseudo : lolo

4

factor() fait une décomposition en nombres premiers, ça ne te donne pas tous les diviseurs smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

[nosmile]Le code de pokito sans les erreurs:
:Local a 
:Local k 
:Local n 
:
:Prompt n 
:
:For k,1,n
:n/k->a
:
:If int(a) = a Then 
:Disp a 
:EndIf 
:EndFor

(J'ai aussi supprimé le step ,1 pour le For parce que c'est le step par défaut de toute façon.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

6

7

ben une fois que t'as tous les nombres premiers, t'as donc tous les diviseurs les plus petit, il suffit ensuite de les multiplier entre eux, ca fait bcp moins de possibilités
Ancien pseudo : lolo

8

yep c'est pas faux, je ne me souviens plus vraiment des ordres de grandeur mais peut-être qu'à cause de la lenteur du basic ça serait beaucoup plus efficace d'appeler factor() et de combiner les résultats que de les trouver "à la main"
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

9

pokito (./6) :
Voilà, là c'est mieux ^^

Il y a toujours la faute de frappe "locak" et ton STO est toujours à l'envers.
De plus, les DelVar que tu as rajoutés à la fin ne servent strictement à rien, les variables locales sont automatiquement supprimées quand le programme se termine.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

10

11

Bon merci beaucoup d'avoir répondu aussi vite smile. Mais j'ai quelques soucis, bon jsuis peut-être pas très doué en programmation mais voilà :
J'ai entré exactement ce que Kevin a marqué bon au début ya le nom suivi de Prgrm et Endprgrm à la fin mais je pense que jusque là çava
Ensuite je lance le programme en mettant un chiffre et j'ai "Missing start or end of block syntax" là je vois plus.
J'ai essayé de lancer le programme sans mettre de chiffre et en fermant la parenthèse et mm erreur.

De l'aide svp merci wink

Tom.

12

ah oui et aussi j'ai sauté des lignes où vous en avez sauté je sais pas si c'était fait exprès mais dite moi si ça ne l'était pas smile

13

Le programme de kevin, faut rien mettre dans les parenthèses et les refermer. Le nom en haut du programme doit aussi avoir des parenthèses fermées.

Question conne : t'aurais pas recopié les ":" aussi par hasard ? grin

Les lignes, on s'en fiche ^^

14

Ok, tu as raison de poser des questions connes à ce sujet je suis con smile

Mais non je les ai pas recopiés ils y sont déjà.

En fait jai sur ma calculatrice à la fin de l'écriture du programme (je l'ai appelé div)
:div()
:Prgm
:Local a
:Local k
:Local n
:
:Prompt n
:
:For k,1,n
:n/k->a
:
:If int(a)=aThen
grinisp a
:EndIf
:EndFor
:EndPrgm

Voilà et en faisant ça j'ai le msg d'erreur écrit précédemment.
Pokito tu vois pas une erreur de débutant que jaurai pu faire^^?

Merci !

15

il te manque un espace entre a et then non ? (tu aurais pu t'en rendre compte en faisant "goto" sur l'erreur et en voyant où l'éditeur t'indique le problème)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

16

Merci beaucoup !
J'avais fait "goto" mais elle me mettait le curseur vers Endif donc j'ai pas vu que c'était à cause de l'espace.
Ms merci...

Tom

17

pokito (./13) :
Question conne : t'aurais pas recopié les ":" aussi par hasard ? grin

Ça ne ferait pas boguer le programme, ça ferait juste des instructions vides.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité