A maioria dos números quadrados ter pelo menos 1 número quadrado diferente com que sua distância Levenshtein é exatamente 1. Para um dado quadrado , cada quadrado que atenda esta condição é chamada um vizinho Levenshtein de . Por exemplo, é um vizinho de de Levenshtein , pois apenas 1 edição ( ) é necessária. No entanto, não é um vizinho de Levenshtein de , pois exige um mínimo de 2 edições. Os números com 0 iniciais ( ) não são vizinhos de Levenshtein.
Sua tarefa é pegar um número quadrado como entrada e gerar, em qualquer formato razoável, a lista completa dos vizinhos de Levenshtein. Você pode incluir vizinhos repetidos na lista, se desejar, mas não incluir a entrada original, pois não é um vizinho de Levenshtein.
Qualquer formato razoável deve incluir algum tipo de separador entre as saídas, como ,
ou uma nova linha, e pode gerar caracteres com o valor Unicode correspondente (por exemplo, cérebro), em vez dos próprios números. A ordem da saída não importa.
Essa entrada sempre será um número quadrado maior que . Seu programa não deve ter limite teórico , mas se falhar por grandes números por motivos práticos (por exemplo, além dos números de 32 bits), tudo bem.
Se a entrada não tiver vizinhos de Levenshtein, a saída deve refletir claramente isso, como a saída de nada, uma matriz / string vazia, um número inteiro negativo, etc.
Isso é código-golfe , então o código mais curto em bytes vence.
Casos de teste
Estes são os resultados para os quadrados de a :
1: 4, 9, 16, 81
4: 1, 9, 49, 64
9: 1, 4, 49
16: 1, 36, 169, 196
25: 225, 256, 625
36: 16, 361
49: 4, 9
64: 4
81: 1, 841
100: 400, 900, 1600, 8100
121: 1521
144: 1444
169: 16, 1369
196: 16, 1296, 1936
225: 25, 625, 1225, 2025, 4225, 7225
256: 25
289: 2809
324: 3249
361: 36, 961
400: 100, 900, 4900, 6400
Além disso, 1024
não possui vizinhos, por isso é um bom caso de teste.
32 * 32 = 1024
não há vizinhos Levenshtein quadrados.
1024
não tem vizinhos Levenshtein, vou editar esse exemplo em
2025
são.