正の整数の入力を前提として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:
多分?