Sub trobaPrimer()
'Declaració i inicialització
Dim found As Boolean
Dim number As Currency
Dim message As String
found = False
number = 2977
'Es comprova que el número a evaluar no sigui un número parell
'Es selecciona només la terminació del número a evaluar per evitar un sobreeiximent
str2 = number
str3 = Mid(str2, (Len(str2)), 1)
'S'evalúa si és un número parell
If str3 Mod 2 = 0 Or str3 Mod 5 = 0 Then
'Si ho és, s'acaba la funció
'Es llança un missatge de final de rutina
message = "El número " & number & " no és primer. És parell o múltiple de 5."
MsgBox message
'Si és senar, s'evalúa si es tracta d'un primer
Else
'Es busquen tots els possibles divisors
For i = 2 To (number - 1) / 2
'S'evalúa que el possible divisor sigui un número parell
str2 = (i)
str3 = Mid(str2, (Len(str2)), 1)
If Not str3 Mod 2 = 0 Then
'Si la divisió no té residu és que s'ha trobat un divisor
If ((number / (i)) = Fix(number / (i))) Then
message = "El número " & number & " no és primer. Un dels divisors és " & (i) & "."
MsgBox message
Exit Sub
Else
'Si no s'ha trobat cap divisor es tracta d'un número primer
'atès que no hi pot haver cap divisor que sigui més gran de ((number - 1) / 2)
found = True
End If
End If
Next
End If
'Si s'ha trobat que és primer, es llança un missatge
If found Then
message = "El número " & number & " és primer."
MsgBox message
End If
End Sub
Cap comentari:
Publica un comentari a l'entrada