Bonjour !!
Alors voila je vous expose mon probléme :
*** scan effacé ***
On choisie un nombre N
Pour A variant de 2 à +(l'infini)
Si PGCD (N ; A) > 1
Alors
On affiche « Le nombre « N » nest pas premier »
Stop
Fin du Si
Fin du Pour
Pour la 10 j ai pensé a ça sans vraiment savoir :
Sans un stop le programme continuerait de cherché et n afficherai pas le résultat voulu pour le nombre N.
Par contre pour le programme je n y arrive pas. Je sais qu il y a une boucle enfin bref je suis pas bien avancé la dessus ....
Edit Marcel : Les scans d'énoncé sont interdits sur ce forum. Si tu veux de l'aide, merci de prendre la peine de recopier ton énoncé et tes questions.
Bonjour,
Il y a plusieurs erreurs dans ce que tu as fait.
Il faut tout d'abord, conformément aux règles du forum que tu recopies l'énoncé. Cela te sera très utile car en lisant bien l'énoncé tu as presque toutes les réponses et tu pourras corriger déjà plusieurs erreurs.
C'est important de bien lire et relire un énoncé. Le scanner ne suffit pas !
Je t'aiderai quand tu auras recopié l'énoncé.
L'objectif de cette partie est de parvenir à écrire un programme simple permettant de vérifier si un entier N est premier ou non. Afin d'écrire cette Algo, nous utiliserons le résultat suivant "Si le PGCD de N avec tous les entiers compris ente 2 et N-1 est égal à 1, alors N est un nombre premier"
On choisie un nombre N
Pour A variant de ???? à ????
Si PGCD (N ; A) ???? 1
Alors
On affiche « Le nombre « N » n'est pas premier »
Stop
Fin du Si
Fin du Pour
Voila
D'accord.
Pourquoi voudrais-tu que la boucle aille jusque + ?
1) il faudra un temps infini !
2) ce n'est pas du tout nécessaire. Relis bien l'énoncé
Corrige donc le
Pour A variant de 2 à ...
Voilà...
Bien sûr on ne va pas tester avec N (on ne va pas chercher le PGCD de N avec N...) donc il suffit de s'arrêter à N-1, comme le prévoit l'énoncé pour cet algorithme "simple"
_________________
L'énoncé :
Je préfère beaucoup ce choix
Si le PGCD de N et de A est différent de 1 c'est que N n'est pas un nombre premier.
____________
Tu me diras que si le PGCD est différent de 1 alors il est supérieur à 1 et que donc ta première proposition était également valable ; mais je la trouve moins claire.
____________
A quoi sert le "Stop" là où il est ? Tout simplement à arrêter le programme puisqu'on a la réponse.
Ce programme permet de savoir si oui ou non N est un nombre premier.
Dès que l'on a trouvé qu'il n'est pas premier cela ne sert à rien de continuer à faire "tourner" la calculatrice.
____________
Ta calculatrice (que je ne connais pas) a-t-elle une fonction qui permette le calcul du PGCD de deux nombres ? Si oui, écrire le programme est très simple. Sinon... c'est une autre affaire !
Ouf !
Alors, vas-y.
Ecris les lignes de programme qui traduisent dans le langage de ta machine cet algorithme.
Ce n'est pas difficile si tu as déjà rentré des programmes dans ta calculatrice.
_________________
Il se pourrait que je ne puisse plus te répondre en début d'après-midi car je dois quitter l' quelque temps.
PROGM P :
: Prompt N
:For (A,2,N-1)
:If pgcd (N,A1
:Then
isp N
:Stop
:End
mais il marche pas quel que soit le nombre
il me dit fait ... ?
Il me semble qu'il manque des instructions.
Je n'ai pas de calculatrice et je ne peux pas faire l'essai mais je te propose :
PROGM P :
: Prompt N
: For (A,2,N-1)
: If pgcd (N,A) 1
: Then
: ClearHome
: Output(1,1,"LE NB ")
: Output(1,7,N)
: Output(2,1,"N' EST PAS PREMIER")
: STOP
: END
: END
: STOP
On a vu pourquoi le premier STOP
Le premier END marque la fin du IF
Le deuxième END marque la fin de la boucle FOR
Le dernier STOP marque la fin du programme
Essaye et dis-moi !
ok j'essai mais pourrais tu m expliqué 2 petites chose :
le output ???
et le clear home ???
Ma calculette c est la Texas instruments TI-82 stat.fr
je n ai pas clear home ... mais bon clear = effacé et home = maison (écran ?)
j ai EffEcr ou Efftable
Merci
Je pense que EffEcr signifie Efface Ecran et c'est ce que je voulais faire avec ClearHome qui efface l'écran et place le curseur en haut à gauche de l'écran (si j'ai bien compris...)
Output est une instruction d'affichage qui permet d'afficher du texte et qui le fait à un emplacement précis de l'écran.
Par exemple Output(2,1,"Bla Bla") écrit Bla Bla en mettant le premier B sur la deuxième ligne et dans la première colonne de l'écran.
Si le nombre est premier c'est normal...
C'est seulement si le nombre n'est pas premier qu'il écrit que le nombre n'est pas premier.
C'est bon
Je ne vois pas. Je n'ai pas ce type de calculatrice et je ne peux essayer le programme. Désolé...
J'y suis presque mais il beug encor sur des nombre premier voici se que j'ai fais :
: Prompt N
: For (A,2,N-1)
: If pgcd (N,A1)
: Then
: Disp" les nombre N n est pas premier"
: Stop
: End
: End
je suis pas loin je pense ...
Edit Coll : espaces pour éviter les smileys
Je pense que le IF n'est pas bien écrit.
: IF PGCD(N,A) 1
Et, à l'affichage près, c'est exactement la même chose que ce que j'avais proposé
Je me demande comment réagit la calculatrice quand elle rencontre le premier STOP...
même si ce STOP est dans un test IF ... THEN .... END
je me demande si cela n'arrête pas quand même la calculatrice
Une manière de le savoir serait d'insérer une ligne supplémentaire
Après la ligne FOR... et avant la ligne IF...
insère une ligne DISP A
Et regarde ce qui se passe. Est-ce que la boucle se déroule normalement ou est-ce qu'il n'y a qu'une seule valeur A = 2 qui s'affiche et le programme s'arrête ?
Il est BON !!!!!! SUPER !!!! Youpiiii
AAaaah quel satifaction d'avoir réussi .J'ai comprie en plus !!!! et je n aurais pas réussi sant TOI !!
Merciiiii bcp !!
Mais ce n est pas fini ... je crois qu il y en a encor a la fin bref ne ferme pas le topic mtn
je te tien au courant !
heuu je sais pas se que tu voulais exactement mais sa doit pas étre ça il affiche tout les nombre entre 1 et 40 pour N=41 et me dit "fait"
Bon, cela me rassure. Merci.
Mais pourquoi fonctionne-t-il maintenant et ne fonctionnait-il pas ? Qu'as-tu changé ?
je n ai pas mis de output , effécran. Je l'ai fais rien qu avec se que je savais . Mais sans un peu d aide pour le "
" je chercherai encor ....
je continu mon DM c la fin
J'ai le mode d'emploi d'une vieille TI-82 et il y a peut-être des différences.
Tu as bien fait d'insister.
Et tu as vu comment faire quand on ne sait pas ce que fait la machine. On intercalle des "DISP quelque chose" un peu partout comme cela on voit où elle passe et où elle ne passe pas. Ensuite, quand le programme est au point on enlève ces lignes qui ne servent que pour la mise au point et le dépannage.
Merci d'avoir répondu a la question 15 de mon DM c'est exatement en affichant disp A a cette endroit que l'ont trouve les diviseur de N !!
Vraiment trop FORT ! BRAVOOO
a quoi servent ces grand nombre premier comme celui ci ?
Bonus
16.
Le plus grand nombre premier est « 2^43112209 » qui compte plus de 12 978 189 chiffre.
Ils servent par exemple à coder les messages secrets. Si tu choisis la spécialité maths en terminale, tu feras de l'arithmétique et là tu verras différentes méthodes pour coder les messages.
Certaines méthodes utilisent les nombres premiers et en particulier les nombres premiers qui ont beaucoup de chiffres.
Les ordinateurs peuvent très facilement faire, par exemple, le produit de deux nombres premiers (même très grands) mais il leur faut (pour l'instant) énormément de temps pour décomposer en deux facteurs premiers les très très grands nombres. Il leur faut si longtemps que, quand ils ont trouvé, en général le message n'a plus d'intérêt, il est périmé.
C'est pour cela que l'on cherche à écrire des programmes qui donnent le résultat aussi vite que possible. La méthode utilisée pour cet exercice ne conviendrait absolument pas. Les mathématiciens ont déjà trouvé des méthodes beaucoup plus efficaces et ils continuent de chercher des algorithmes de plus en plus rapides.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :