Page 1 sur 1
Divibilité et algorithme
Posté : ven. 23 août 2013 14:35
par Elia
Bonjour,
Je voudrais écrire un algorithme donnant tous les diviseurs d'un entier N donné, mais celui que j'ai écrit ne fonctionne pas
Et je ne comprends pas pourquoi...
Sachant que b divise a ssi E(b/a)=b/a
j'ai écrit ceci sur ma calculatrice CASIO graph 35 +
Saisir N
I prend la valeur 1
If Intg(N/I)= N/I
Then Afficher I
I prend la valeur I+1
IfEnd
Et quelque soit N, la calculatrice me donne pour diviseurs 1 et 2
Pouvez vous m'aider s'il vous plaît?
Merci
Re: Divibilité et algorithme
Posté : ven. 23 août 2013 17:50
par SoS-Math(2)
Bonjour,
dans votre algorithme, seule la division par 1 est testée.
Vous voulez diviser successivement votre nombre par 2 puis par 3 etc... donc par toutes les valeurs de 1 à N.
Donc votre programme doit avoir une boucle : Pour i allant de 1 à N ...
Bon courage
Re: Divibilité et algorithme
Posté : ven. 23 août 2013 22:18
par elia
bonsoir,
merci de m'avoir répondu
effectivement j'avais oublié une ligne
j'ai corrigé et cela fonctionne (j'ai rajouté également afficher -I pour avoir tous les multiples)
par contre j'ai un autre problème : à chaque fois dans ma liste de diviseurs, j'ai le dernier diviseur +1, par exemple pour 48 :1;-1;3;-3;6;-6;8;-8;12;-12;16;-16;-24;24;48;-48;-49 Pourtant le afficher I se trouve avant le IfEnd....de plus il manque des diviseurs comme le 2 ici... Pourquoi ne teste t'il pas tous les nombres de 1 à N?
merci
Re: Divibilité et algorithme
Posté : sam. 24 août 2013 08:18
par SoS-Math(2)
Bonjour,
pour que je puisse vous répondre, je dois avoir votre nouveau programme ...
A bientôt
Re: Divibilité et algorithme
Posté : sam. 24 août 2013 10:06
par elia
J'ai modifié un peu mon programme et il fonctionne maintenant (je ne vois pas vraiment pourquoi mon nouveau programme fonctionne mieux que l'ancien), l'ancien était :
:
Saisir N
I prend la valeur 1
Pour I allant de 1 à N
Si Intg(N/I)=N/I
Alors afficher I
Afficher -I
I prend la valeur I+1
Fin du si
Next
Le nouveau :
Saisir N
I prend la valeur 1
Pour I allant de 1 à N Step 1
Si Intg(N/I)=(N/I)
Alors afficher I
Afficher - I
Fin du Si
Next
Re: Divibilité et algorithme
Posté : dim. 25 août 2013 09:45
par sos-math(21)
Bonjour,
Dans la calculatrice, il n'y a pas à écrire
I prend la valeur I+1, car la commande Next permet de faire le décalage et d'aller directement au rang I+1.
Je te joins un petit exemple écrit sur algobox et qui a l'air de fonctionner : il permet de voir la syntaxe utilisée par un logiciel.
Dans Algobox, comme dans plusieurs logiciels,
l'incrémentation dans une boucle Pour est implicite : on passe automatiquement de I à I+1.
algo.pdf
- (19.03 Kio) Téléchargé 577 fois
Bon courage pour la suite,
A bientôt sur sos-math
Re: Divibilité et algorithme
Posté : dim. 25 août 2013 12:32
par elia
merci beaucoup !