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
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)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :