Espiral de números primos

Crea una función que reciba un número y una dirección de rotación como argumento y devuelva una espiral de números primos.

Dados n y una dirección, en sentido horario cw o antihorario ccw, devuelve una única cadena multilínea que contenga una matriz n*n de números primos. El elemento en las coordenadas (0, 0) será el punto de partida y, según la dirección de rotación indicada, cada elemento siguiente será el siguiente número primo, en una secuencia ascendente, recorriendo siempre la matriz en forma de espiral.

Ejemplos

spiral(1, "cw") ➞ "Impossible to obtain a list of primes."

spiral(2, "cw") ➞
  ["2", "3"]
  ["7", "5"]

spiral(3, "cw") ➞
  ["02", "03", "05"]
  ["19", "23", "07"]
  ["17", "13", "11"]

spiral(3, "cw") ➞
  ["02", "03", "05"]
  ["19", "23", "07"]
  ["17", "13", "11"]

spiral(4, "cw") ➞
  ["02", "03", "05", "07"]
  ["37", "41", "43", "11"]
  ["31", "53", "47", "13"]
  ["29", "23", "19", "17"]

spiral(4, "ccw") ➞
  ["02", "37", "31", "29"]
  ["03", "41", "53", "23"]
  ["05", "43", "47", "19"]
  ["07", "11", "13", "17"]

Notas

  • Agrega ceros iniciales cuando sea necesario para asegurar que todos los elementos de la matriz tengan la misma longitud.
  • Coloca cada fila de la matriz en una línea separada de la cadena devuelta. Consulta las pruebas para conocer el formato exacto.