É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
n
cela est un carré parfait et est la concaténation den
et un autre nombre. L'ordre des chiffres den
ne peut pas être modifié. Le nombre concaténén
pour produire un carré parfait peut être appelér_1
. - Si ce
r_1
n'est pas un carré parfait, répétez le processus ci-dessus avecr_1
comme nouvelle entrée dans le processus. Répétez jusqu'à ce quer_k
soit 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 n
s'agit d'un entier positif. Si l'un r_k
a 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?