Page 1 of 1

Programme Diviseurs

Unread postPosted: 01 Apr 2012, 14:46
by edwin
Bonjour à tous,

J'ai un problème ce programme qui en fait doit me donner la liste de diviseurs positifs d'un nombre entier naturel non nul N
Code: Select all
Define div(n)=
Prgm
:1→x
:For i,1,n
:x+i→x
:EndFor
:Disp "Diviseurs:=",x
:EndPrgm


Et je dois utiliser for

Re: Programme Diviseurs

Unread postPosted: 01 Apr 2012, 15:14
by Levak
Code: Select all
Define div(n)=
:Prgm
:For i,1,n/2
: If mod(n, i) = 0
:  Disp i
: EndFor
:EndPrgm



ou encore ..

Code: Select all
Define div(n)=
:Prgm
: Local l
: l:={}
: For i,1,n/2
:   If mod(n,i)=0
:     l:=augment(l,{i})
: EndFor
: Disp augment(l,{n})
:EndPrgm

Re: Programme Diviseurs

Unread postPosted: 02 Apr 2012, 09:52
by Bisam
Pour la 2ème version, on peut aussi en faire une fonction (pour pouvoir réutiliser le résultat si besoin) :
Code: Select all
Define div(n)=
:Func
: Local l
: l:={}
: For i,1,n/2
:   If mod(n,i)=0
:     l:=augment(l,{i})
: EndFor
: augment(l,{n})
:EndFunc