Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Algorithme pour trouver le 1000e nombre premier

Posté par
backspace2
09-02-12 à 19:50

Bonsoir,
Je me suis lancé un petit défi, qui devrait être récompensé par mon prof de maths demain si je trouve la solution : j'aimerais faire un algorithme sur ma Texas ti-83+ plus trouver le 1000ème nombre premier qui est 7919. Je précise que je ne connais pas les langages d'algorithmes autres que celui utilisé dans les calculettes Texas.
J'ai commencé à faire un programme, mais il ne marche pas vu qu'il m'affiche 231.
Le signe "=>" représente "stocké en"

3=>A
0=>B
While B<998 (car on a déjà 2 et 3)
A+2=>A  (comme ça on a que les impairs)
partieEntière(racine de A)=>C
For(i,2,C)
if partEnt(A/i) ≠ 0
Then
B+1=>B
end
end
end
disp A

J'aimerais savoir ce qu'il ne va pas là dedans. Merci d'avance.

Posté par
pgeod
re : Algorithme pour trouver le 1000e nombre premier 09-02-12 à 21:54


cette séquence ne va pas :

For(i,2,C)
if partEnt(A/i) ≠ 0
  Then
  B+1=>B
end
end

Posté par
backspace2
re : Algorithme pour trouver le 1000e nombre premier 09-02-12 à 21:57

oui j'ai vu que j'incrémente B dès que A n'est pas divisible par i, alors qu'il ne faudrait incrémenter B QUE si A est divisible par AUCUN i. Et j'arrive pas à exprimer ça sur la texas

Posté par
pgeod
re : Algorithme pour trouver le 1000e nombre premier 09-02-12 à 22:04

ok. c'est un problème de boucle.
on va régler ça.

mais déjà le test : partEnt(A/i) ≠ 0
n'a pas de sens me semble-t-il.

Posté par
backspace2
re : Algorithme pour trouver le 1000e nombre premier 09-02-12 à 22:12

J'ai trouvé la solution à mon problème ! merci quand même pgeod
Si ça intéresse des gens je peux écrire l'algorithme complet ici

Posté par
pgeod
re : Algorithme pour trouver le 1000e nombre premier 09-02-12 à 22:14

Posté par
Bachstelze
re : Algorithme pour trouver le 1000e nombre premier 10-02-12 à 04:51

En Haskell, c'est un bonheur :

firas@itsuki ~ % cat prime.hs
import System.Environment
isPrime n = null [a | a <- [2..n-1], mod n a == 0]
nthPrime n = [a | a <- [2..], isPrime a] !! (n-1)
main = do
        arg <- getArgs
        print (nthPrime (read (arg !! 0)))
firas@itsuki ~ % ghc --make prime.hs
[1 of 1] Compiling Main             ( prime.hs, prime.o )
Linking prime ...
firas@itsuki ~ % ./prime 1000
7919

Posté par
caylus
re : Algorithme pour trouver le 1000e nombre premier 07-04-12 à 22:36

Bonsoir Bachstelze,
en winGHCi, cela donne:


import System.Environment
isPrime n = null [a | a <- [2..n-1], mod n a == 0]
nthPrime n = [a | a <- [2..], isPrime a] !! (n-1)
ex = print $ nthPrime 1000

Posté par
Skep
re : Algorithme pour trouver le 1000e nombre premier 08-04-12 à 18:38

Scilab : numero_premier(1000)
Très facile avec les fonctions déjà pré-installées mais plus jouissif avec nos fonctions (et aussi plus rapide )

Posté par
mariah
re : Algorithme pour trouver le 1000e nombre premier 03-09-12 à 15:05

Pourrais tu poster le programme que tu as terminé, il m'a l'air bien intéressant!
Merci d'avance!



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !