Diberikan masukan bilangan bulat positif n
, tulis sebuah program yang menyelesaikan proses berikut.
- Temukan bilangan bulat positif terkecil yang lebih besar dari
n
itu adalah kuadrat sempurna dan merupakan gabungan darin
dan beberapa angka lainnya. Urutan digitn
tidak dapat diubah. Angka yang digabungkann
untuk menghasilkan kuadrat sempurna bisa disebutr_1
. - Jika
r_1
bukan kuadrat sempurna, ulangi proses di atas denganr_1
sebagai input baru untuk proses. Ulangi sampair_k
persegi sempurna, dilambangkans
. - Cetak nilai
sqrt(s)
.
Input dapat diambil dalam format apa pun. Anda dapat menganggap bahwa itu n
adalah bilangan bulat positif. Jika ada yang r_k
memiliki 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?Python,
200198178 bytesumber
math.sqrt
menjadim
.Brachylog , 26 byte
Cobalah online!
Kasing uji terakhir dihilangkan dalam tautan TIO karena hanya dibutuhkan lebih dari satu menit untuk mengeksekusi. Saya menjalankannya di laptop saya dan hasil yang benar dicapai dalam waktu tidak lebih dari dua jam.
Yang kedua-terakhir
ℕ
diperlukan ketika input awal sudah merupakan kuadrat sempurna, sehingga kuadrat sempurna pertama yang menjadikannya sebagai awalan itu sendiri, dan!
perlu untuk memastikan bahwa menelusuri kembali iterates alih-alih menemukan kotak yang lebih besar, tetapi saya tidak benar-benar tahu mengapa≜
itu perlu, saya hanya tahu bahwa 5 menghasilkan jawaban yang salah tanpa itu.sumber
∧
s sebenarnya lebih pendek daripada menggunakan sandwich.)Perl 6 , 101 byte
sumber
ES7, 116 byte
Ya, saya mungkin bisa menyimpan byte dengan menggunakan
eval
.sumber