Poster un nouveau sujet Poster une réponse
Spé Maths: décomposition en facteurs premiers
Auteur Message
Métalocif



Autorisation : Membre
Nb de messages : 92
Inscrit le : Lun 10 Mai 2010, 19:24
Posté le : Dim 09 Oct 2011, 13:17   Citer 

Un programme pratique et rapide pour les Terminales S. glasses.gif
Voila le code:

Code
ClrHome
Input"Votre Nombre?",X
2->Y
While 1
If X/Y=iPart(X/Y)
Then
If Y=2 or Y=3 or Y=5 or Y=7 or Y=11 or Y=13 or Y=17 or Y=19 or Y=23 or Y=27 or Y=29 or Y=31 or Y=37 or Y=41
Then
Disp Y
X/Y->X
Pause
End
Else
Y+1->Y
End
If Y>41 or Y=1
Then
If X[différent de]1
Disp X
Output(1,1,""
Stop
End
End



Voilà! Je l'ai mis dans une compilation de programmes de maths donc je ne sais pas quel est son poids,mais il n'est pas bien lourd...
Il peut sans doute être amélioré,donc n'hésitez pas à me faire part de vos idées.
Métalocif

----------------------
"On ne ment jamais autant qu'avant les élections, pendant la guerre et après la chasse." Clémenceau
 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Dim 09 Oct 2011, 13:30   Citer 

Sympa happy.gif
J'en avais fait un aussi, mais pas de la même manière, regarde ce topic, on en avait discuté, mais ta méthode est intéressante aussi happy.gif

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 09 Oct 2011, 17:47   Citer 

ça à l'air pas mal mis à part que ça ne prend pas vraiment en compte es nombres premiers suppérieurs à 41.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
azerty1



Autorisation : Membre
Nb de messages : 468
Inscrit le : Dim 12 Déc 2010, 20:44
Posté le : Dim 09 Oct 2011, 18:15   Citer 

Oui, c'est l'inconvénient pour les grands nombres... C'est pour ça, la méthode utilisées dans l'autre topic, est je pense, plus efficace...

----------------------
Ti-Connect 64bits
PROTECT
Tuto Skin Perso Wabbitemu
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Dim 09 Oct 2011, 18:21   Citer 

Oui, ou alors il faut prolonger la liste des nombres premiers.

Sandro

PS : si certains voudrait bien aller sur [url=espace TI]http://espace-ti.forumactif.com/[/url], on essaye de battre le record de personnes sur le forum (invités et membres confondus)

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Métalocif



Autorisation : Membre
Nb de messages : 92
Inscrit le : Lun 10 Mai 2010, 19:24
Posté le : Lun 10 Oct 2011, 12:28   Citer 

Ouais,mais comme le programme décompose le nombre en partant des plus petits nombres premiers,le temps qu'il arrive jusqu'à 41, le seul facteur premier restant est affiché par le programme puisque c'est le dividende!
En plus cette méthode rend le programme très rapide.
Métalocif

----------------------
"On ne ment jamais autant qu'avant les élections, pendant la guerre et après la chasse." Clémenceau
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Lun 10 Oct 2011, 13:40   Citer 

41 c'est le max ... qu'est-ce qui pourrait atteindre ou dépasser "le" 42...
godgrace.gif

 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Lun 10 Oct 2011, 18:34   Citer 

C'zte vrai que la plupart du temps la méthode est efficace, sauf si l'on a deux facteurs premiers suppérieurs à 41.

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Mar 01 Nov 2011, 23:45   Citer 

Sinon j'ai crée un autre programme qui donne rigouresement pour chaque nombre ( sauf 1 mais venez pas m'embetter avec ca svp :p ) dont les facteurs ne sont pas trop grand ( sinon problème de mémoire cry.gif ) chacun de ses facteurs


Code

EffEcr
EffListe L1
Input "NBR A FACTORISER",N
2->A
0->F
Lbl 1
If partDec (N/A)=0
Then
F+1->F
A->L1(F
N/A->N
If N=1
Goto 2
Goto 1
Else
A+1->A
Goto 1
End
Lbl 2
If F=1
Then
Disp "PREMIER"
Else
Disp L2
End



bon fait à l'arrache avant d'aller me coucher si on peut optimiser, dites le happy.gif

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 02 Nov 2011, 10:25   Citer 

Huhu sinon ... il y a moyen de raccourcir encore ...
Ce programme n'est pas de moi (source : http://www.siteduzero.com/tutoriel-3-407863-tp-decomposeur.html, tutoriel de mdr1 sur le ti-basic ), mais il marche parfaitement winkle.gif



Code

:{1→L1
:1→C
:Input "dec ",A
:For(B,2,√(A
:While not(fPart(A/B
:B→L1(C
:C+1→C
:A/B→A
:End
:End
:If A≠1:A→L1(C
:L1 



----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 02 Nov 2011, 19:27   Citer 

on peut même l'améliorer encore un petit peu (en tout cas en place, peut-être pas en vitesse) :

Code
:{1 -> L1
:1 -> C
:Input "dec ",A
:For(B,2,rac(A
:While not(fPart(B[^-1]A
:B -> L1(dim(L1
:B[^-1]A -> A
:End
:End
:If A-1
:A -> L1(dim(L1
:L1



Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 02 Nov 2011, 19:31   Citer 

Ouais ... Mouais ... Tu chipotes un peu la winkle.gif
Et puis même t'es sur d'économiser au moins seul octet ? godgrace.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Mer 02 Nov 2011, 19:36   Citer 

pardon, j'avais simplement ... oublié l'optimisation (j'avais juste remplacé les carractères spéciaux : maintenant c'est 4 octés en moins)

J'ai édité

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Mer 02 Nov 2011, 20:04   Citer 

Va pour 4 octets en moins winkle.gif

(tu m'impressionnes la quand même t'sais eyeonly.gif )

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
tonio 2



Autorisation : Membre
Nb de messages : 18
Inscrit le : Mar 01 Nov 2011, 19:00
Posté le : Jeu 03 Nov 2011, 8:57   Citer 

J'aime bien ton optimisation sandro mais je sais pas pk la calto aime moins ( surtout le A[^-1] winkle.gif

Voila la version finale que j'en ai retenu, un peu plus lourde mais beaucoup plus rapide pour certains nombres

Code

:EffListe L1
:EffEcr
:1 -> C
:Input "dec ",A
:For(B,2,rac(A
:While not(fPart(A/B
:B -> L1(C
:A/B->A
:C+1->C
:If A=1:Goto 1                // gain de vitesse si A=1 avant B=racine de A
:End
:End
:If A-1
:A -> L1(C
:Lbl 1                       // gain de vitesse si A=1 avant B=racine de A
:L1



 Adresse email Haut de page Bas de page 
 
The K



Autorisation : Membre
Nb de messages : 878
Inscrit le : Sam 15 Oct 2011, 11:07
Posté le : Jeu 03 Nov 2011, 18:52   Citer 

Bon. Conséquence : ne pas toujours optimiser godgrace.gif
Hein Sandro winkle.gif

----------------------
La la la ...

Avez-vous pensé à regarder le manuel avant de demander conseil ? Un manuel est fait avant tout pour être consulté : MANUEL
Un problème de programmation ? Allez consulter ce tutoriel crée pour cela : TUTORIEL PROGRAMMATION
Vous avez un problème avec l'ordinateur avec votre calculatrice ? SOLUTION EN VIDEO

Mes programmes sur le site : Produit scalaire KMorpion Puissance 4 Mastermind

Mes nouveaux programmes de calcul formel : FCarré FPrime

Projet base de données : ici mais abandonné. Trop de travail ...
 Adresse email Haut de page Bas de page 
 
sandro



Autorisation : Membre
Nb de messages : 1387
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Jeu 03 Nov 2011, 18:58   Citer 

J'ai vraiment foiré sur ce message (j'ai oublié de changer A et B de place, maintenant ça devrait être bon (j'ai remplacé encore un diviser par un [^-1]).

Sandro

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2164
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Ven 04 Nov 2011, 8:46   Citer 

+1 the K ... happy.gif

Pas grave Sandro, on t'en veut pas. Rappelle toi que le mieux est l'ennemi du bien . bigmouth.gif

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink