Ir al contenido

Primed for Action

Autor
Santiago Chavarro

Análisis
#

El reto consiste en interceptar una lista de números entre los que solo dos son primos auténticos y se utilizan como clave. El objetivo es identificar estos dos números primos dentro de la lista y encontrar su producto, que es la clave para resolver el caso. Esta tarea requiere filtrar la lista para detectar números primos y luego multiplicar los primeros dos encontrados.

El problema presenta que la mayoría de los números son irrelevantes (“basura”) y solo dos son valiosos porque son primos. La función clave es la prueba de primalidad, que debe ser correcta para no contar números no primos.

Código
#

El código propuesto plantea:

  • Leer una lista de números desde la entrada.
  • Implementar una función primo(n) que determine de forma eficiente si un número es primo, evitando considerar 0 y 1 como primos.
  • Recorrer la lista, verificar cuáles números son primos y guardar los dos primeros encontrados.
  • Multiplicar esos dos números para obtener la clave.
  • Imprimir el resultado.

El código es sencillo y directo, implementando la verificación de números primos con una condición para descartar 0 y 1 y un ciclo para detectar divisores.

# take in the number
n = input()
n = n.split()

# calculate answer
def primo(n):

    if(n == 0 or n ==1):
        return False

    for i in range(2,n):
        if(n%i == 0):
            return False

    return True


pr = []

for i in range(len(n)):
    isthis = primo(int(n[i]))
    if(isthis == True):
        pr.append(n[i])
    if(len(pr) == 2):
        break

n = int(pr[0]) * int(pr[1])


# print answer
print(n)

Referencias
#