22 abril, 2021

GENERAR NÚMEROS PRIMOS CON PYTHON Y EXPORTAR A EXCEL

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.

Donate Button with Credit Cards

¡¡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

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies