Большинство квадратных чисел имеют по крайней мере 1 другое квадратное число, с которым их расстояние Левенштейна равно 1. Для данного квадрата каждый квадрат, который удовлетворяет этому условию, называется соседом Левенштейна от . Например, является соседом Левенштейна из , так как требуется только 1 правка ( ). Однако не является соседом Левенштейна из , так как требует минимум 2 правок. Числа с начальными 0 ( ) не являются соседями Левенштейна.
Ваша задача - взять квадратное число в качестве входных данных и вывести в любом разумном формате полный список его соседей Левенштейна. Вы можете включить в список повторных соседей, если хотите, но не можете включать исходный ввод, поскольку он не является соседом Левенштейна.
Любой разумный формат должен включать в себя какой-то разделитель между выходами, например ,
или символ новой строки, и может выводить символы с соответствующим значением Unicode (например, brainfuck), а не сами цифры. Порядок вывода не имеет значения.
Этот вход всегда будет квадратным числом больше . Ваша программа не должна иметь никаких теоретических ограничений, но если она не подходит для больших чисел по практическим причинам (например, за пределами 32-разрядных чисел), это вполне нормально.
Если входные данные не имеют соседей Левенштейна, выходные данные должны четко отражать это, например, ничего не выводить, пустой массив / строка, отрицательное целое число, и т. Д.
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
Контрольные примеры
Вот результаты для квадратов от до :
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
Кроме того, 1024
не имеет никаких соседей, так что это хороший тестовый пример.
32 * 32 = 1024
у Левенштейна нет соседей.
1024
не имеет соседей Левенштейн, я буду редактировать этот пример в
2025
.