Étant donné l'entrée d'un entier positif n, écrivez un programme qui termine le processus suivant.
- Trouver le plus petit entier positif plus grand que
ncela est un carré parfait et est la concaténation denet un autre nombre. L'ordre des chiffres denne peut pas être modifié. Le nombre concaténénpour produire un carré parfait peut être appelér_1. - Si ce
r_1n'est pas un carré parfait, répétez le processus ci-dessus avecr_1comme nouvelle entrée dans le processus. Répétez jusqu'à ce quer_ksoit un carré parfait, notés. - Imprime la valeur de
sqrt(s).
L'entrée peut être prise dans n'importe quel format. Vous pouvez supposer qu'il ns'agit d'un entier positif. Si l'un r_ka un zéro de tête (et r_k≠ 0), le zéro peut être ignoré.
Cas de test
Voici quelques cas de test. Le processus illustre les étapes ci-dessus.
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
C'est le golf de code. Des règles standard s'appliquent. La réponse la plus courte (en octets) l'emporte.
while x**.5%1:peut-être?