jueves, 21 de enero de 2021

Criba de Eratóstenes para obtener números primos en Excel

Puede descargar el archivo con el código VBA: eratostenes.xlsm

La criba de Eratóstenes es un método algorítmico que nos permite obtener los números primos inferiores a un valor dado eliminando sucesivamente todos los múltiplos anteriores.

En nuestro ejemplo vamos a obtener los números primos anteriores a 200, que son:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199.


 Option Explicit  
 Sub cribado()  
 Dim A(200) As Integer  
 Dim i As Integer, j As Integer  
 Dim color  
 Range("B4:K23").Interior.Pattern = xlNone  
 For i = 2 To 200  
   A(i) = i  
 Next i  
 For i = 2 To 200  
   If A(i) <> 0 Then  
     color = RGB(Rnd * 256, Rnd * 256, Rnd * 256)  
     For j = i + 1 To 200  
       If j Mod i = 0 Then  
         Call colorines(A(j), color)  
         A(j) = 0  
       End If  
     Next j  
   End If  
 Next i  
 End Sub  
 Sub colorines(n, color)  
 Dim fila As Integer, columna As Integer  
 For fila = 4 To 23  
   For columna = 2 To 11  
     If Cells(fila, columna).Value = n And n <> 0 Then  
       Cells(fila, columna).Interior.color = color  
     End If  
   Next columna  
 Next fila  
 End Sub  



Se van coloreando los múltiplos de los diferentes primos que nos encontramos. Finalmente, los números que quedan sin colorear son los números primos.