La maggior parte dei numeri quadrati ha almeno 1 diverso numero quadrato con cui la loro distanza di Levenshtein è esattamente 1. Per un dato quadrato , ogni quadrato che soddisfa questa condizione è chiamato vicino di Levenshtein di . Ad esempio, è un vicino di Levenshtein di , poiché è richiesta solo 1 modifica (da ). Tuttavia, non è un vicino di Levenshtein di , poiché richiede un minimo di 2 modifiche. I numeri che hanno 0 iniziali (da ) non sono vicini di Levenshtein.
Il tuo compito è prendere un numero quadrato come input e produrre, in qualsiasi formato ragionevole, l'elenco completo dei vicini di Levenshtein. Se lo desideri, puoi includere vicini ripetuti nell'elenco, ma potresti non includere l'input originale, poiché non è un vicino di Levenshtein di per sé.
Qualsiasi formato ragionevole dovrebbe includere una sorta di separatore tra le uscite, come ,o una nuova riga, e può produrre caratteri con il corrispondente valore Unicode (cioè brainfuck) anziché i numeri stessi. L'ordine dell'output non ha importanza.
Questo input sarà sempre un numero quadrato, maggiore di . Il tuo programma non dovrebbe avere limiti teorici , ma se fallisce per grandi numeri per motivi pratici (es. Oltre i numeri a 32 bit), va benissimo.
Se l'input non ha vicini di Levenshtein, l'output deve riflettere chiaramente questo, come l'output di nulla, una matrice / stringa vuota, un numero intero negativo, , ecc.
Questo è code-golf , quindi vince il codice più breve in byte.
Casi test
Questi sono i risultati per i quadrati da a 20 :
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
Inoltre, 1024non ha vicini, quindi è un buon caso di prova.
32 * 32 = 1024non ha vicini quadrati di Levenshtein.
1024non ha vicini di Levenshtein, modificherò questo esempio in
2025.