Більшість квадратних чисел мають щонайменше 1 різних квадратних чисел, з якими їх відстань Левенштейна дорівнює рівно 1. Для даного квадрата кожен квадрат, який відповідає цій умові, називається сусідом Левенштейна з . Наприклад, є Левенштейн сусідом , так як тільки 1 редагування ( ) не потрібно. Однак не є сусідом Левенштейна з , оскільки для цього потрібно як мінімум 2 редагування. Числа, які мають провідні 0 ( ), не є сусідами Левенштейна.x 36 16 1 → 3 64 16 2025 → 025
Ваше завдання - взяти квадратне число в якості введення та вивести у будь-якому розумному форматі повний список його сусідів Левенштайн. Ви можете включити до списку сусідів, які повторюються, якщо ви хочете, але ви можете не включити оригінальний ввід, оскільки це не є сусідом Левенштейна.
Будь-який розумний формат повинен містити якийсь роздільник між виходами, таким як ,
або новий рядок, і може виводити символи з відповідним значенням 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
.