Bonjour je vais aller droit au but comment fait on en algo si ce nombre peut diviser l'autre alors...
Oui biensûr alors j'ai un exercice où il faut donner les diviseurs dun nombre N pour ensuite faire un algorithme mais j'ai besoin de savoir si un nombre est divisible par tels nombres. Un exemple Si 6 est divisible par 3 alors ..
a divisible par b si a/b est égal à la partie entière de a/b.
Plus généralement, un nb est entier s'il est égal à sa partie entière
Ok et ensuite donc si je met
For (I,1,N)
If PartEnt(N/I)=N/I
Then
Apres je doit additionner les diviseurs et voir si le nombre N est parfait comment faire ?
tu initialises la somme à 0 avant de rentrer dans la boucle. et si PartEnt(N/I)=N/I, alors S prend pour valeur S+I
oui, juste au début du programme
Tout dépend si ton programme teste un nb N ou plusieurs ; il faut réinitialiser S pour chaque nb N
J'ai fait l'algorithme mais j'ai l'impression que ça ne continue pas après ça fait que 1 (exemple pour le nombre 6) ça ne le divise pas ensuite par 2,3
Donc ça donnerait:
Input N
O->S
For (I,1,N)
If int(N/I)=N/I
Then
S+I->S
EndFor
If S=N
Then
Disp "Nombre Parfait",N
c'est ça donc ?
Je test avec le nombre 6 mais ça me met Done alors que c'est un nombre parfait il y a donc un problème
il ne faut pas une pause à la fin du programme pour l'affichage ?
Sinon, après l'exécution du programme, regarde ce qu'il y a dans la variable S
Nous n'avons pas appris la fonction "Pause" et ni comment regarder ce qu'il y a dans la variable S mais je ne comprend pas je travaille toute cette aprem' et je ne sais pas du tout où est la faute...
je ne connais pas la TI83, donc je ne peux pas vraiment t'aider.
Mais, qd tu es sorti du programme et que tu tapes S,(au besoin éteins et rallume la calculatrice) il te dis "parfait " ?
Si tu ne trouves pas "pause", tu peux aussi le faire compter jusqu'à 1000 (ou 10 000), le temps que tu voies l'affichage (for k=1 to 1000 endfor)
tu mets pause, après le disp, pour que tu aies le temps de lire ce qu'il affiche.
ensuite, tu appuies sur entrée et il continue le programme (qui ici, sera fini)
je ne comprends pas ; il ne fait qu'une boucle ; si tu lui demande d'afficher I, (en dehors du programme) que trouve-t-il ? 1 ?
sinon, il faut essayer une autre boucle (tant que I²<N par exemple, en ajoutant 1 à I dans la boucle)
sur ma calculatrice, il faut rajouter un end pour le SI
Donc ça donnerait:
Input N
O->S
For (I,1,N)
If int(N/I)=N/I
Then
S+I->S
******************* ajouter "finsi" ; endif sur ta calculatrice ?
EndFor
If S=N
Then
Disp "Nombre Parfait",N
il faut arrêter à N-1 car N est un diviseur de N et si tu le rajoutes à la somme tu obtiens (dans le cas d'un nb parfait) 2N au lieu de N
essaie avec 6 :
1+2+3+6 !!
Je croyais pourtant que je l'avais mis j'ai galérer tout ce temps pour un -1 oublier
En tout cas je te remercie pour ton aide
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :