Macro para Numeros Primos
Publicado por Sudo (1 intervención) el 08/03/2015 08:47:21
Hola, como se haría un macro el cual al darle un numero N, muestre en Diferentes celdas de Excel todos los numeros primos entre 1 y N?
Valora esta pregunta


0
Private Function ArrayPrimos(Numero)
Dim Contador1, Contador2, Primos(), PrimosReturn()
Dim x, y
ReDim Primos(2 To Numero)
For x = 2 To Numero
If Primos(x) <> -1 Then
Primos(x) = x
Contador1 = Contador1 + 1
For y = x + x To Numero Step x
Primos(y) = -1
Next y
End If
Next x
ReDim PrimosReturn(0 To Contador1 - 1)
Contador2 = 0
For x = 2 To Numero
If Primos(x) <> -1 Then
PrimosReturn(Contador2) = Primos(x)
Contador2 = Contador2 + 1
End If
Next x
ArrayPrimos = PrimosReturn
End Function
Sub RellenaPrimos()
Dim NumeroDestino As Long, Primos, x
NumeroDestino = Val(InputBox("Ingrese el número hasta el que se efectuará el cálculo" & vbCr & "entre 2 y 2.147.483.647", _
"Cálculo de números primos", 100))
If NumeroDestino < 2 Then Exit Sub
Primos = ArrayPrimos(NumeroDestino)
For x = 1 To UBound(Primos)
ActiveSheet.Cells(x, 1).Value = Primos(x - 1)
Next x
End Sub