Divibilité et algorithme

Retrouver tous les sujets résolus.
Répondre
Elia

Divibilité et algorithme

Message par Elia » ven. 23 août 2013 14:35

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
SoS-Math(2)
Messages : 2177
Enregistré le : mer. 5 sept. 2007 12:03

Re: Divibilité et algorithme

Message par SoS-Math(2) » ven. 23 août 2013 17:50

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
elia

Re: Divibilité et algorithme

Message par elia » ven. 23 août 2013 22:18

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
SoS-Math(2)
Messages : 2177
Enregistré le : mer. 5 sept. 2007 12:03

Re: Divibilité et algorithme

Message par SoS-Math(2) » sam. 24 août 2013 08:18

Bonjour,
pour que je puisse vous répondre, je dois avoir votre nouveau programme ...
A bientôt
elia

Re: Divibilité et algorithme

Message par elia » sam. 24 août 2013 10:06

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
sos-math(21)
Messages : 10401
Enregistré le : lun. 30 août 2010 11:15

Re: Divibilité et algorithme

Message par sos-math(21) » dim. 25 août 2013 09:45

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é 576 fois
Bon courage pour la suite,
A bientôt sur sos-math
elia

Re: Divibilité et algorithme

Message par elia » dim. 25 août 2013 12:32

merci beaucoup !
Répondre