Nota del editor: Encontrar números primos en Mathcad puede hacerse en solo unos pocos pasos de programación. Dave Martin muestra cómo se puede (y asegura que no se necesita mucha experiencia en codificación para desentrañarlo).

Si un número es divisible exactamente por dos números, el número uno y el número en sí mismo, se conoce como un número primo.

Los números primos han fascinado a los matemáticos durante miles de años. Alrededor del 300 BC, Euclides probó que existe un número infinito de números primos. Un siglo después, el matemático griego Erastótenes (del que hablaremos más tarde) ideó un método para encontrar números primos que hoy lleva su nombre: la Criba de Erastótenes. Grandes matemáticos como Euler, Escott, Fermat y Mersenne trabajaron en fórmulas para encontrar números primos.

El Teorema fundamental de la Aritmética expresa que cada entero puede escribirse como factores de números primos. La Conjetura de Goldfarb afirma que todo número entero par puede escribirse como la suma de dos números primos. Esto no se ha probado para todos los números impares, pero tampoco se ha refutado. Así que hay algo inherentemente especial en los primos.

Puede que no lo sepa, pero los números primos tienen efecto en nuestra vida diaria. Cada simple transacción financiera que hacemos en línea o con nuestras tarjetas de crédito depende de criptosistemas de clave pública, que utiliza números primos increiblemente largos.

Un día estuve pensando en los números primos y me di cuenta que si un número no es divisible por alguno de los números por debajo de su raíz cuadrada, se trata de un número primo.

Después aprendí que Erastótenes ya se percató de eso hace más de 2200 años atrás. De hecho, su criba muestra que un entero es primo si no es divisible por alguno de los números primos por debajo de su raíz cuadrada.

Decidí ver si podía escribir un programa en Mathcad para los números primos. En vez de determinar si un número es primo o no, para hacerlo interesante, quería enviar un rango de números como entradas al programa y tener como salida un vector de todos los números primos en ese rango. Aquí está el programa:

Echemos un vistazo a alguno de los aspectos de este programa:

- La iteratividad de los bucles es uno de los aspectos más potentes del programa, y éste utiliza dos. Un bucle for permite realizar una serie de acciones un número especificado de veces. Un bucle while repite las acciones hasta que una cierta condición ya no es cierta.
- La construcción if-then-else evalúa una condición y realiza diferentes acciones basadas en cuando la conidción es cierta o falsas.
- Cuando se determina que un número no es un número primo, el operador break permite al program salir del bucle actual y evaluar el siguiente entero.
- Utiliza funciones internas como ceil para redondear un número hasta el siguiente entero y mod para calcular un módulo (el resto cuando un número es dividido por otro). PTC Mathcad Prime tiene más de 400 funciones internas de una variedad de áreas diferentes.
- El programa construye un vector y lo devuelve como un resultado. El programa no sabe lo grande que será el vector cuando es creado.

No está mal para catorce líneas. Además, yo soy terrible en programación de ordenadores normalmente. Leí un libro de Python, hace años pero nunca hice mucho más que el programa "Hello, World!". La última clase de programación que tuve fue en C - no C++, C estándar - allá cuando Bush era presidente. El primero, no W. Soy la prueba de que no se tiene que ser bueno en programación para programar PTC Mathcad Prime.

Aquí hay algunas salidas:

El programa seguramente podría recortarse. Seguro que podía hacerse mejor. Los programas soportan recursión; un programa puede llamarse a si mismo. Puedo hacer el programa más eficiente incorporando recursividad para comparar un entero únicamente con los números primos por debajo de la raíz cuadrada de ese entero. Pero eso es un proyecto para otro momento.

¿Qué puedes hacer con programas para facilitar tus cálculos de ingeniería? can you do with programs to facilitate your engineering calculations? Las posibilidades son infinitas, como los números primos.

Sobre el autor

Dave Martin fue instructor y consultor de Creo, Windchill, y Mathcad. Después de salir de PTC, fue el especialista de Creo para Amazon: y un ingeniero mecánico, administrador de Creo, y administrador de Windchill para Amazon Prime Air. Tiene un grado de Ingeniería Mecánica del MIT y actualmente trabaja como ingeniero de aviónica en Blue Origin. 

Martin es autor de los libros "Design Intent in Creo Parametric" y "Top Down Design in Creo Parametric"--ambos disponibles en www.amazon.com.

¡Atención! Este sitio usa cookies y tecnologías similares. Si no cambia la configuración de su navegador, usted acepta su uso.