Page 1 of 1

Soucis Programme nspire

Unread postPosted: 21 Sep 2014, 14:41
by Erwin75
Bonjour à tous. J'ai récemment crée dans un contexte scolaire un programme permettant d'avoir tout les diviseurs d'un entier. Seul bémol, il ne marche que sur papier et pas sur calculatrice:

Code: Select all
Define diviseurs(a)=
Prgm

If floor(a)=a Then
   If floor(a/2)=a/2 Then
     For i,1,a/2
       a/i ->n
       floor (a/i)->m
       If n=m Then
            Disp i
       EndIf
       i+1->i
      EndFor
    Else
    For i,1,(a-1)/2
      a/i->n
      floor(a/i)->m
      If n=m Then
       Disp i
      EndIf
      i+1->i
    EndFor
   EndIf
Else
Disp 0
EndIf
EndPrgm


Voilà normalement c'est censé marcher sauf que quand je demande les diviseurs de 60 par exemple,ça me met 1 3 5 15 30, résultats certains diviseurs sont manquants. Ou se trouve le problème?
Aidez moi s'il vous plait.
Je vous remercie d'avance.

Re: Soucis Programme nspire

Unread postPosted: 21 Sep 2014, 16:54
by critor
Bonjour,

Supprime les deux lignes:
Code: Select all
i+1->i


En effet, l'incrémentation du compteur i est faite automatiquement par la boucle 'For'.

Là, ça veut dire que tu incrémentes deux fois à chaque itération, et par conséquent oui tu sautes des cas et donc des diviseurs.

Re: Soucis Programme nspire

Unread postPosted: 21 Sep 2014, 17:05
by Erwin75
D'accord et effectivement oui après modifications.
Merci beaucoup :)

Re: Soucis Programme nspire

Unread postPosted: 01 Oct 2014, 17:24
by Thibaut-57155
Ou sinon il y a un de mes programmes qui fait exactement la même chose :ange: