import numpy as np
import time


def es_primo(num):
    if num < 2:
        return False
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            return False
    return True


def generar_matriz(m, n):
    matriz = np.random.randint(1, 1000, size=(m, n))
    return matriz


def encontrar_primos(matriz):
    primos = []
    for fila in matriz:
        for num in fila:
            if es_primo(num):
                primos.append(num)
    return primos


# Definir el tamaño de la matriz
m = 8
n = 5

# Generar la matriz
matriz = generar_matriz(m, n)

# Calcular el tiempo estimado para encontrar los números primos
inicio = time.time()
primos_encontrados = encontrar_primos(matriz)
tiempo_transcurrido = time.time() - inicio

print("Matriz generada:")
print(matriz)
print("\nNumeros primos encontrados:")
print(primos_encontrados)
print("\nTiempo transcurrido para encontrar los numeros primos:",
      tiempo_transcurrido, "segundos")