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:

EntradaSalida
7Yes
25No

Tu solución

Program.cs — 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.