Diberikan masukan bilangan bulat positif n, tulis sebuah program yang menyelesaikan proses berikut.
- Temukan bilangan bulat positif terkecil yang lebih besar dari
nitu adalah kuadrat sempurna dan merupakan gabungan darindan beberapa angka lainnya. Urutan digitntidak dapat diubah. Angka yang digabungkannuntuk menghasilkan kuadrat sempurna bisa disebutr_1. - Jika
r_1bukan kuadrat sempurna, ulangi proses di atas denganr_1sebagai input baru untuk proses. Ulangi sampair_kpersegi sempurna, dilambangkans. - Cetak nilai
sqrt(s).
Input dapat diambil dalam format apa pun. Anda dapat menganggap bahwa itu nadalah bilangan bulat positif. Jika ada yang r_kmemiliki nol di depan (dan r_k≠ 0), nol dapat diabaikan.
Uji kasus
Berikut ini beberapa test case. Proses tersebut menunjukkan langkah-langkah di atas.
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
Ini golf kode. Aturan standar berlaku. Jawaban terpendek (dalam byte) menang.
while x**.5%1:mungkin?