Hola a todos:
En Excel Signum tengo varios post dedicados a generar números primos con VBA en Excel, estos son los enlaces:
Estos días he decidido realizar un ejemplo en Python en el que generaré los n números primos comprendidos en un rango de números, por ejemplo entre 2 y 100. Además también programaré su salida a una hoja Excel en la que podremos mostrar los datos por columnas y no solo en una columna hasta el final.
En resumen, lo que vamos a conseguir es esta información en Excel:

Como podéis ver, aquí se muestran los números primos del 2 al 100, estableciendo el largo de cada columna en 10 filas.
Para hacer esto utilizaremos el siguiente código:
import xlsxwriter
workbook = xlsxwriter.Workbook(r'C:\Users\USUARIO\OneDrive\Documents-Segu\NUMEROS_PRIMOS.xlsx')
worksheet = workbook.add_worksheet("Hoja1")
#Definimos variables
inicio = 2
final = 100
lColumn=10
row =0
column=1
#Iniciamos loop desde rango definido
for num in range(inicio, final + 1):
if num > 1:
#Si num es mayor que 1 comprobamos si es primo
for i in range(2, num):
if (num % i) == 0:
break
else:
#Si es primo imprimimos y pasamos a Excel
worksheet.write(row, column-1, num)
row += 1
if row == lColumn:
column=column + 1
row=-1
row += 1
print(num)
workbook.close()
Aunque os lo comento en el código, utilizaremos el módulo de Python «XlsWriter» para exportar los datos generados a Excel. Debemos indicar el «path» y también la hoja en la que deseamos mostrar la información.
El código está programado para indicar el largo de columna que deseamos «lColumn» y el «inicio» y «final» del rango establecido.
El resto de programación valida que cada número iterado en el loop sea o no número primo, de tal forma que si el «resto» obtenido de la división entre las variables «num» e «i» es distinto de 0 entonces es número primo y por lo tanto lo imprimimos y lo escribimos en la hoja excel.
Aquí os dejo la captura en Visual Studio Code del código ejecutado con Jupyter:

Y esto es todo ¿os ha gustado?, espero que sí!.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies