View Full Version : Lucas lehmer
albeganasa
02-06-2007, 13:08
Spero di non essere OT...ma vorrei implementare un programmino in Vb.net Basato sull'algoritmo di lucal lehmer...solo che non saprei nemmeno da dove iniziare!! conosco le definizioni e gli enunciati, solo che non so applicarli..qualcuno mi sa aiutare? grazie..
Il Capitano
02-06-2007, 18:02
A occhio e croce hai sbagliato sezione. Dovresti postare in programmazione :)
Dire che il mio VisualBasic è arrugginito sarebbe un complimento. Comunque, Wikipedia alla mano, pare che questo test di Lucas-Lehmer si possa fare dicendo:
s vale 4
m vale 2 elevato alla p meno 1
per p - 2 volte
s vale s * s - 2 modulo m
se s vale zero allora m è primo altrimenti no
Un'ipotetica funzione VisualBasic (molto ipotetica) che faccia questo test per un numero M = 2 ^ p potrebbe essere:
Function LucasLehmer(p)
s = 4
m = (2 ^ p) - 1
do
s = ((s * s) - 2) Mod m
p = p - 1
Loop While p > 2
LucasLehmer = False
If s = 0 Then
LucasLehmer = True
End If
End Function
albeganasa
03-06-2007, 13:23
Dire che il mio VisualBasic è arrugginito sarebbe un complimento. Comunque, Wikipedia alla mano, pare che questo test di Lucas-Lehmer si possa fare dicendo:
s vale 4
m vale 2 elevato alla p meno 1
per p - 2 volte
s vale s * s - 2 modulo m
se s vale zero allora m è primo altrimenti no
Un'ipotetica funzione VisualBasic (molto ipotetica) che faccia questo test per un numero M = 2 ^ p potrebbe essere:
Function LucasLehmer(p)
s = 4
m = (2 ^ p) - 1
do
s = ((s * s) - 2) Mod m
p = p - 1
Loop While p > 2
LucasLehmer = False
If s = 0 Then
LucasLehmer = True
End If
End Function
Interessante..Dovrebbe quindi essere:
Public Function LucasLehmer (byval p as integer)
Dim s as integer=4
Dim m as integer=pow(2,p)-1
do
s = ((s * s) - 2) % m
p = p - 1
loop until p > 2
if s = 0 Then
LucasLehmer = True
else
LucasLehmer =False
End If
End Function
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.