AD

¿Ya dominas lo básico? Un curso estructurado de R es la vía rápida para dar el salto.

Ver cursos de R en Udemy

Enlace de afiliado. No te cuesta nada extra.

📊Lecciones de R
Lección 60 / 68

Comprobar si un número es primo

En esta lección determinarás si un número solo es divisible por 1 y por sí mismo.

Se prueban los divisores desde 2 hasta la raíz cuadrada: si un número tiene un divisor mayor que su raíz, tiene forzosamente otro menor que ya habríamos encontrado.

El código de ejemplo comprueba varios números.

Fíjate en que el bucle es un while y no el for (i in 2:floor(sqrt(n))) que parecería lo natural. Ahí acecha justo la trampa de la lección de bucles: para n = 2 o n = 3, floor(sqrt(n)) vale 1, y 2:1 no es una secuencia vacía sino c(2, 1), una secuencia descendente. El bucle probaría a dividir por 1, que siempre divide, y el 2 y el 3 saldrían como no primos. Con while (i * i <= n) el cuerpo sencillamente no se ejecuta ninguna vez, y por eso el ejemplo prueba el 2 en primer lugar: para dejar ese límite a la vista. Es un ejemplo perfecto de por qué seq_len y las comprobaciones de los casos límite importan tanto en R.

Los otros casos límite son los habituales: el 1 no es primo y los negativos tampoco, por eso la primera línea descarta todo lo menor que 2.

Para trabajar de verdad con primos existe el paquete numbers, con isPrime y funciones relacionadas. Y los primos sostienen la criptografía de clave pública.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar R directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)