Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

Test de Lucas-Lehmer

Posté par
AnneDu60
24-12-15 à 17:41

Bonjour !
J'ai un problème sur un exercice dont voici l'énoncé.

"Le test de Lucas-Lehmer permet de déterminer si un nombre de Mersenne donné est premier. Ce test utilise la suite numérique (Un) définie par Uo=4 et pour tout entier naturel n : U(n+1)=Un²-2
Si n est un entier naturel supérieur ou égal à 2, le test permet d'affirmer que le nombre Mn (nombre de Mersenne) est premier ssi U(n-2) est congrue à 0 modulo Mn. Cette propriété est admise dans la suite".

On nous propose les conditions que l'ont souhaitent en y laissant quelques espace à compléter.

Variables : u,M,n et i sont des entiers naturels
Initialisation : u prend la valeur 4
Traitement : Demander un entier n>= 3
                             M prend la valeur ...
                            Pour i allant de 1 à ... Faire
                            u prend la valeur ...
                            Fin Pour
                           Si M divise u alors afficher "M ..."
                           Sinon afficher "M ..."

Je pense avoir réussis à programmer l'algorithme sur ma calculatrice Casio GRAPH 35+ mais dès que  N est supérieure ou égale à 8 ça ne fonctionne plus.
De plus, j'ai rentré la suite (Un) dans le menu RECUR et j'ai remarqué que U(7) avait un ordre de grandeur égal à 10^(73) et qu'après U(7) il y avait écrit ERROR car les nombres sont bien trop grands !
Donc est-ce pour cela que l'algorithme ne marche pas ?

Je vous le montre quand même :
"N"?--->N
4--->U
If N<3
Then "NON DEFINI"
Else 2^(N)-1--->M                                                                
For 1 ---> I To N-2
(U²-2)--->U
Next
If Frac (U/M)=0
Then "M EST PREMIER" (afficher)
Else "M EST NON PREMIER" (afficher)
IfEnd                                                                                                            
IfEnd

PS: un nombre de Mersenne s'écrit sous la forme Mk=2^(k)-1

Posté par
mathafou Moderateur
re : Test de Lucas-Lehmer 24-12-15 à 18:08

Bonjour,
oui. les nombres Un sont très vite beaucoup trop grands pour une calculette ou un logiciel "ordinaire".

en fait comme on s'intéresse non pas à la valeur de Un mais seulement à sa valeur modulo Mn
on peut déja gagner en faisant tous les calculs de Un modulo Mn

calculer Un+1 = Un²-2 modulo Mn et pas juste Un²-2

ça va tout de suite permettre d'aller beaucoup plus loin
mais quand Mn² dépassera les capacités de la machine à traiter des nombres entiers, les calculs ne voudront plus dire grand chose, même si il ne sort pas d'erreurs.
les capacités de calcul en nombres entiers sont bien inférieures aux capacités de calcul en nombres "réels" (avec des 10^n)

Posté par
mathafou Moderateur
re : Test de Lucas-Lehmer 24-12-15 à 18:10

j'ai oublié de mettre en indices, le lecteur interprétera de lui-même.



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

Inscription gratuite

Fiches en rapport

parmi 1742 fiches de maths

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 !