Квадратна щільність цифр числа (SNDD) числа - придумана власноруч - це відношення підрахунку квадратних чисел, знайдених у послідовних цифрах, до довжини числа. Наприклад, 169 - це 3-розрядне число, що містить 4 квадратних числа - 1, 9, 16, 169 - і, таким чином, має щільність цифр квадратного числа 4/3, або 1,33. 4-розрядне число 1444 має 6 квадратів - 1, 4, 4, 4, 144, 1444 - і, таким чином, співвідношення 6/4, або 1,5. Зауважте в попередньому прикладі, що квадратики можуть бути повторені. Також 441 заборонено, оскільки його не можна знайти послідовно всередині числа 1444.
Ваше завдання - написати програму, яка шукає заданий діапазон А - В (включно) для числа з найбільшою квадратною щільністю цифр. Ваша програма повинна дотримуватися таких специфікацій:
- Візьміть вхід A, B в межах від 1 до 1 000 000 000 (1 мільярд). Приклад:
sndd 50 1000
- В результаті повертаємо число з найбільшим SNDD. У разі краватки поверніть найменше число.
- 0 не вважається квадратом у будь-якій формі, 0, 00, 000 і т. Д. Ні квадрати, що починаються з 0, наприклад 049 або 0049.
- Зауважте, що все число не повинно бути квадратним числом.
Приклади:
sndd 14000 15000
Output: 14441
sndd 300 500
Output: 441
Бонус: Яке число з найбільшим SNDD становить від 1 до 1 000 000 000? Чи можете ви довести, чи є це найбільшим можливим чи може бути більшим у більшому діапазоні?
Поточні результати:
- Рубін: 142
- Windows PowerShell: 153
- Скала: 222
- Пітон: 245
Тепер, коли було обрано відповідь, ось моя (нерозроблена) посилання на реалізацію в JavaScript: http://jsfiddle.net/ywc25/2/