Saber si un número es primo en C

Publicado por parzibyte en

En este post te voy a mostrar cómo determinar si un número es primo en C.

Para saber si un número es primo, hay que probar si se puede dividir únicamente entre 1 y entre sí mismo.

Lo que tenemos que hacer para determinar si un número es primo (en C) es probar si el número se puede dividir por otros números que no sean el 1 y el propio número.

¿Y a qué nos referimos con “se puede dividir”? se dice que un número se puede dividir cuando el residuo es cero, bueno, hablando de divisiones enteras. Por ejemplo, el 7 no es divisible entre 2, porque al dividirlo el resultado es 3 y sobra 1.

En cambio, el 10 sí es divisible entre 2, porque al dividirlo el resultado es 5 y sobra 0.

Algoritmo para saber si número es primo en C

Pero basta de hablar, veamos un poco de código.

El 0 y el 1 no son primos, eso lo sabemos desde el inicio así que con un simple if comparamos y regresamos falso o 0.

Después hacemos un ciclo que irá desde 2 hasta el número dividido entre 2. Por ejemplo, si el número que vamos a probar es 10, debemos ir desde 2 hasta 5.

Dentro del ciclo probamos si el número es divisible con el operador módulo (%), y si es divisible entonces el número no es primo.

En caso de terminar el ciclo normalmente (o sea, que no se rompió desde dentro) entonce se dice que el número sí es primo.

Si te fijas, el número 4 (que no es primo) es especial para este algoritmo (pero no para las matemáticas), pues al dividirlo entre 2 el resultado es 2, y el ciclo nunca se hace.

Por ello es que está el if que dice que si el número es 4 inmediatamente se dice que no es primo. Esto se hace únicamente para este número y este algoritmo.

Puedes probar el código aquí.


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB.Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron.Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scriptsLa plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C.Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: