def es_primo(n: int) -> bool:
    """Determina si un número es primo.

    :param n: número a evaluar.
    :n type: int
    :return: True si es primo, False en caso contrario.
    :rtype: bool
    """
    if n == 2 or n == 3:
        return True
    if n % 2 == 0 or n < 2:
        return False
    for i in range(3, int(n**0.5)+1, 2):
        if n % i == 0:
            return False
    return True