Poster un nouveau sujet Poster une réponse
Programme Facteur
Auteur Message
Laclochette



Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 03 Jui 2013, 20:19
Posté le : Mar 04 Jui 2013, 9:49   Citer 

Bonjour,

Voilà, j'ai mis récemment des programmes sur ma calculatrice. N'ayant pas de câble, j'ai fait sans câble donc j'ai écrit tous les programmes sur ma calculatrice. Tous fonctionne sauf 1: Facteur. En fait, il fonctionne mais quelque soit le nombre, c'est-à-dire que A soit entier naturel ou non, il m'écrit "A N EST PAS UN ENTIER NATUREL".

L'aurais-je mal écrit?

Voici ce qu'il y a exactement sur ma calculatrice:

:EffEcr
:Input "A=",A
:EffEcr
:If A=0 ou A=1
:Then
:Output(4,2,"NB NON VALIDE")
:Pause
:EffEcr
:Stop
:End
:If partEnt(A)[different de]0 ou abs(A)[different de]A
:Then
:Output(3,2,"A N EST PAS UN")
:Output(5,2,"ENTIER NATUREL")
:Pause
:Goto 0
:End
:0->dim(L5)
:0->D
:While partEnt(A/2)=0
: D+1->D
: D->dim(L5)
:2->L5(D)
:A/2->A
:End
:partDéc([Racine carré](A))->B
:For(C,3,B,2)
:While partEnt(A/C)=0
: D+1->D
: D->dim(L5)
:C->L5(D)
:A/C->A
:End
:End
:If A[different de]1
:Then
: D+1->D
: D->dim(L5)
:A->L5(D)
:End
:Disp "RESULTAT :"
:Pause L5
:Lbl 0
:EffEcr

Les "L5" ont été mis de la manière suivante: [2nde] [5].
Les espaces avant les "D" sont mis afin d'éviter les émoticones.

Voilà.

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 11:18   Citer 

Bonjour!
Je n'ai pas tout testé, mais commence par remplacer cette ligne:

Code
If partEnt(A)[different de]0 ou abs(A)[different de]A


Par:

Code
If partDec(A) ou A<0


(tu testais la partie entière au lieu de la partie décimale)

PS: la prochaine fois, pense à mettre les balises de codes, ça rend la lecture plus simple winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Laclochette



Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 03 Jui 2013, 20:19
Posté le : Mar 04 Jui 2013, 12:09   Citer 

Désolée en ce qui concerne la lisibilité du programme ^^'.

Ensuite, c'est déjà mieux, le programme reconnait les nombres naturels. Cependant, il ne décompose pas le nombre en une série de nombres premiers.

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 12:39   Citer 

Tu l'as trouvé où le prgm?
Je n'ai pas trop le temps de me pencher dessus pour l'instant, je verrai ce soir.
Sinon, tu peux toujours chercher ici, des solutions qui ont l'air de marcher ont été proposées.

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Laclochette



Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 03 Jui 2013, 20:19
Posté le : Mar 04 Jui 2013, 13:30   Citer 

Et bien sur le site, j'ai téléchargé le programme facteur sans cable.

Prends ton temps, ce n'est pas pressé winkle.gif.

 Adresse email Haut de page Bas de page 
 
Kelk'1



Autorisation : Membre
Nb de messages : 36
Inscrit le : Lun 01 Avr 2013, 18:48
Posté le : Mar 04 Jui 2013, 15:39   Citer 

remplace tes "partEnt" par "partDéc" et remplace ton "partDéc" par "ent("

----------------------
Signature inutile, enjoy =)
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 17:02   Citer 

En fait, tu as fait des erreurs en traduisant de la Ti-82stats à la Ti-82stats.fr:
fPart = Partie décimale = PartDec(
iPart = Partie entière = int(
Tu faisais l'inverse winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Jui 2013, 19:13   Citer 

Je chipote :
fPart=parDéc
int=partEnt
iPart=ent
Malgré le manque de logique, c'est la réalité. Article

m@thieu41 tu chutes dans mon estime MDR, ne pas connaître les programmes de notre Webmaster adoré. XD godgrace.gif


Voici la version ultime de mon programme, épurée de toute complication, malgré un poids légèrement plus important que quand j'avais une routine, et suppression de la liste des puissances.
EDITE deux fois pour trois corrections et une fois pour les commentaires.

Code
Prompt A
EffListe L1
0->U
While non(partDéc(A.5  // on tente la division par 2
U+1->U
2->L1(U
A.5->A
Disp 2
End
rac(A->B
3->W
While A>1  // critère de fin   // la boucle tente de diviser par les impairs >3
If W>B    // critère de seuil, évite les grands nombres
A->W
While non(partDéc(A/W   // division par W
U+1->U
W->L1(U
A/W->A
rac(A->B
Disp W
End
W+2->W
End
L1



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mar 04 Jui 2013, 20:14   Citer 

Je plaide coupable godgrace.gif
Mais en même temps, je n'ai jamais vraiment connu le webmaster, et ses programmes sont peu optimisés ce qui fait que je ne les regarde pas trop moodforlove.gif


Par contre, je ne comprends pas : dans ton prgm, tu ne testes que 2 et 3 comme facteurs? (La valeur de W ne varie jamais ahh.gif )

Et aussi: pourquoi tester séparément le nombre 2?

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Jui 2013, 23:14   Citer 

J'ai oublié la ligne qui incrémente W de 2 et j'ai mal écrit la ligne sous le If. minied.gif
Edité. *ashamed*

D'abord le crible divise par 2 tant que possible, puis tente de diviser par tous les nombres impairs en commençant par 3. C'est 2 fois plus rapide, et c'est une des choses réalisées par presque tous les cribles dont celui du site.
Puis j'ai deux critères d'arrêt :
-le nombre saisi a été entièrement décomposé, A=1, ou saisie initiale fausse car inf à 1
-le diviseur testé dépasse la racine carrée de la valeur restante de A (valeur actuelle après les premières divisions) : A est un nombre premier et on teste immédiatement la division de A par A pour achever.
Le critère de sortie est ma spécialité, encore meilleur que le traditionnel calcul de racine carrée au tout début en guise de seuil définitif.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Laclochette



Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 03 Jui 2013, 20:19
Posté le : Mer 05 Jui 2013, 6:23   Citer 

Erf :p

Trop de messages pour moi en une soirée.

Je vais essayer de les décrypter et après je vous dirai ce qu'il en est ^^.

Merci beaucoup bigmouth.gif

 Adresse email Haut de page Bas de page 
 
Laclochette



Autorisation : Membre
Nb de messages : 5
Inscrit le : Lun 03 Jui 2013, 20:19
Posté le : Mer 05 Jui 2013, 6:57   Citer 

J'ai essayé le programme donné par linkakro.

Il fonctionne très bien happy.gif

Et j'ai modifié les partDéc et partEnt comme vous me l'avez conseillé.

Le programme fonctionne très bien maintenant bigmouth.gif

Merci beaucoup :')

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 17:50   Citer 

Heu Linkakro... il y a un petit problème avec ton prgm:

Code
If A>B
A->W


C'est pas plutôt:

Code
If A<B
A->W


Parce que par exemple si A = 15, B = sqrt(15) et A>15...
Donc le programme s'arrête, alors qu'il ne devrait pas crazy.gif

EDIT: Voici un prgm qui reprend pour l'essentiel les idées de Linka ( minied.gif ) mais (je pense) un peu plus optimisé, si ce n'est en vitesse au moins en taille bigmouth.gif
Edité une fois pour une correction

Code
Prompt A
EffListe L1
EffVar U2->W
sqrt(A->B
While A!=1
If W>B
A->W
While non(partDéc(A/W
U+1->U
W->L1(U
A/W->A
sqrt(A->B
Disp W
End
W+1+(W!=2->W
End
L1



----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Jui 2013, 19:40   Citer 

Désolé, encore planté. C'était normalement :
If W>B
au lieu de If A>B.

Ta fusion de l'étude du nombre 2 aux autres nombres est classique et pratique, mais pas bénéfique en vitesse.
Sinon j'ai déjà fait comme ça avant. Je devrais d'ailleurs le poster comme ça désormais pour éviter que cette question se pose.
Et puis ma nuance sur le nombre dont on étudie la racine carrée n'apporte que peu d'efficacité à l'échelle des nombres classiquement abordés.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 19:51   Citer 

Autant pour moi minied.gif
Mais on ne perds pas grand chose en vitesse si? (juste un petit test d'égalité quand W>2, sinon pour W=2 on ne perd quasiment rien...)

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Jui 2013, 20:08   Citer 

Le temps gagné en test selon l'étude de 2 est à considérer pour toutes les boucles. Un temps minuscule multiplié par des milliers, cela peut être désastreux si on décompose des nombres excessivement grands.
Mais ce n'est certes pas très important sur une TI.

Le choix entre l'étude de la racine du premier A ou l'étude du A divisé ne change que très peu le temps à l'échelle d'une TI.
Mais c'est la seule chose réellement originale de mon programme.

EDIT : second paragraphe réécrit pour clarifier que ce n'est pas le principe de la racine qui est négligeable mais le choix d'une des méthodes de racines.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 20:24   Citer 

Bah pour la racine quand même ça peut faire gagner pas mal de tours de boucles si le nombre est grand...
Par exemple si on prend 562275, au lieu de tester plus de 300 nombres grâce à ta méthode on en teste qu'une dizaine...

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Jui 2013, 21:21   Citer 

Je voulais dire le choix d'une des méthodes de racine, pas le principe de la racine. (décidément je loupe aucune erreur faisable cette semaine) (j'ai édité)

Nous avons utilisé la racine de A actuel alors que celui du site utilise la racine initiale.

Si on note le temps X utilisé par les calculs de racines, F le plus grand facteur, Y le temps de division, N le nombre de facteur, et le temps T du reste de la boucle, on a approximativement les temps totaux :
- racine initiale : rac(A)*T+Y*N
- racine de A divisé : rac(F)*(T+X)+Y*N
La seconde méthode n'est pas forcément rentable, cela serait à calculer après mesure des temps de la calculatrice.

J'ai envie de troller : 562275=3*3*3*5*5*7*7*17 et 17~~4.12^2 donc ce n'est pas ce nombre qui montrera l'exemple de 300 boucles même sans étude de la racine godgrace.gif

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 05 Jui 2013, 21:35   Citer 

Donc en fait tout depend du plus grand nombre premier facteur de A
Plus il est petit et plus ta methode est appropriee winkle.gif

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.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