Dato input di un numero intero positivo n, scrivere un programma che completa il seguente processo.
- Trova il numero intero positivo più piccolo maggiore di
nquello è un quadrato perfetto ed è la concatenazione dine qualche altro numero. L'ordine delle cifre dinnon può essere modificato. Il numero concatenato sunper produrre un quadrato perfetto può essere chiamator_1. - Se
r_1non è un quadrato perfetto, ripetere il processo sopra descrittor_1come nuovo input per il processo. Ripeti fino a quando nonr_kè un quadrato perfetto, indicatos. - Stampa il valore di
sqrt(s).
L'input può essere preso in qualsiasi formato. Puoi presumere che nsia un numero intero positivo. Se uno r_kha uno zero iniziale (e r_k≠ 0), lo zero può essere ignorato.
Casi test
Ecco alcuni casi di test. Il processo dimostra i passaggi precedenti.
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
Questo è il codice golf. Si applicano le regole standard. Vince la risposta più breve (in byte).
while x**.5%1:forse?