Espiral de números primos

Crie uma função que receba um número e uma direção de rotação como argumento e retorne uma espiral de números primos.

Dados n e uma direção, no sentido horário cw ou anti-horário ccw, retorne uma única string multilinha contendo uma matriz n*n de números primos. O elemento nas coordenadas (0, 0) será o ponto de partida e, com base na direção de rotação informada, cada elemento seguinte será o próximo número primo, em uma sequência crescente, percorrendo sempre a matriz em forma de espiral.

Exemplos

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"]

Observações

  • Adicione zeros à esquerda quando necessário para garantir que todos os elementos da matriz tenham o mesmo comprimento.
  • Coloque cada linha da matriz em uma linha separada na string retornada. Consulte os testes para ver o formato exato.