Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Algo nombre premier
Onny Hors ligne Membre Points: 38 Défis: 10 Message

Algo nombre premier

Posté le 18/07/2012 20:28

Bonjour a tous.

Je voudrais vous demander si vous connaissiez une solution pour calculer si un nombre est premier plus rapidement que mon crible d'eratosthene, il est bien trop lent. J'avais deja lu mieux mais je ne retrouve pas ...
Et deuxieme petite question, les calculs ne vont pas plus vite en C qu'en Basic ?

Voici mon code. Pour ~450.000.000 il met 31 secondes et 16 avec CPUSpeed.

'PRGM2
27->F
While F:WhileEnd
?->X
X÷2=Int (X÷2=>Stop
For 3->A To 7 Step 2
X÷A=Int (X÷A=>Stop
Next
While A<[SQRT]X
For 1->B To 2
A+4->A
X÷A=Int (X÷A=>Stop
A+2->A
X÷A=Int (X÷A=>Stop
Next
A+4->A
X÷A=Int (X÷A=>Stop
A+6->A
X÷A=Int (X÷A=>Stop
A+2->A
X÷A=Int (X÷A=>Stop
A+6->A
X÷A=Int (X÷A=>Stop
WhileEnd
"YA"



Pierrotll Hors ligne Ancien administrateur Points: 5488 Défis: 41 Message

Citer : Posté le 18/07/2012 23:55 | #


Selon ton programme, 1 est premier, et 2, 3, 5, 7 ne le sont pas. Mais si tu veux surtout tester les grands nombres, ta méthode n'est pas mauvaise.

Pour accélérer un peu tu peux changer X/A=Int (X/A par 0=MOD(X,A (mais cette fonction n'existe que sur les Graph 75/85/95 avec OS 2).

Pour la différence de vitesse entre le C et le Basic, c'est comme comparer la vitesse de la pensée à la vitesse de lecture.
Onny Hors ligne Membre Points: 38 Défis: 10 Message

Citer : Posté le 19/07/2012 08:32 | #


J'ai une 35 avec OS 75 en effet utiliser MOD est mieux.

Merci de tes reponses. Dans ce cas autant le faire en C

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 252 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd