Intermedio · división por tentativa
Comprobar primo
¿n es divisible por algo más que 1 y sí mismo? Prueba solo divisores hasta √n — y detente en cuanto encuentres uno. La cota √n es lo que lo hace rápido.
Problema
Entrada: un entero n (0 ≤ n ≤ 10⁶).
Salida: Yes si n es primo, No si no (0 y 1 no son primos).
Ejemplo:
| Entrada | Salida |
|---|---|
7 | Yes |
25 | No |
Tu solución
Entrada personalizada para "Probar mi entrada"
La corrección se ejecuta por completo en tu navegador contra pruebas ocultas. Tu código se guarda localmente mientras escribes. Ctrl+Enter corrige.
¿Atascado? Pistas
Pista 1 — por qué √n basta
Si n = a × b con a ≤ b, entonces a ≤ √n. Un factor mayor que √n siempre se empareja con uno menor — así que probar hasta i * i <= n cubre todo.
Pista 2 — los casos límite
n < 2 → no primo (resuélvelo antes del bucle). Los cuadrados perfectos como 25 necesitan <= en i * i <= n, no < — si no, 5×5 se cuela. Y break en el primer divisor encontrado.
Solución (¡inténtalo primero!)
int n = int.Parse(Console.ReadLine());
if (n < 2) { Console.WriteLine("No"); return; }
bool primo = true;
for (int i = 2; i * i <= n; i++)
{
if (n % i == 0) { primo = false; break; }
}
Console.WriteLine(primo ? "Yes" : "No");
El return de nivel superior sale antes de tiempo — no hace falta else para el caso n < 2. Escalar esto a "contar todos los primos hasta N" es una criba — un buen siguiente reto. Siguiente: Fibonacci.