dimarts, 6 de juliol del 2010

Macro d'Excel per trobar números primers

Només cal obrir el gestor de macros d'Excel, crear un mòdul i copiar-hi aquest tros de codi. Llavors executar la macro un cop s'ha canviat el valor de la variable 'number' al valor que es vulgui avaluar.


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