Давши введення додатного цілого числа n
, напишіть програму, яка завершує наступний процес.
- Знайдіть найменше додатне ціле число,
n
що є досконалим квадратом, і є з'єднаннямn
та деяким іншим числом. Порядок цифрn
не може бути змінений. Число, об'єднане в такий,n
щоб отримати ідеальний квадрат, можна назватиr_1
. - Якщо
r_1
квадрат не є ідеальним, повторіть описаний вище процесr_1
як новий вхід до процесу. Повторюйте, покиr_k
не буде ідеальний квадрат, позначаєтьсяs
. - Роздрукуйте значення
sqrt(s)
.
Введення даних може бути зроблено в будь-якому форматі. Можна припустити, що n
це додатне ціле число. Якщо будь-який r_k
має провідний нуль (і r_k
≠ 0), нуль можна ігнорувати.
Тестові справи
Ось кілька тестових випадків. Процес демонструє вищезазначені етапи.
Input: 23
Process: 23, 2304, 4
Output: 2
Input: 10
Process: 10, 100, 0
Output: 0
Input: 1
Process: 1, 16, 6, 64, 4
Output: 2
Input: 5
Process: 5, 529, 29, 2916, 16
Output: 4
Input: 145
Process: 145, 145161, 161, 16129, 29, 2916, 16
Output: 4
Input: 1337
Process: 1337, 13373649, 3649, 36493681, 3681, 368102596, 2596, 25969216, 9216
Output: 96
Це код гольфу. Діють стандартні правила. Найкоротша відповідь (у байтах) виграє.
while x**.5%1:
можливо?