Pozitif bir tamsayı girişi verildiğinde n
, aşağıdaki işlemi tamamlayan bir program yazın.
- Bundan daha küçük en büyük pozitif tamsayıyı
n
mükemmel bir karedir ve birleşimin
ve başka bir sayıdır. Rakamlarının sırasın
değiştirilemez.n
Mükemmel bir kare oluşturmak için birleştirilen sayı çağrılabilirr_1
. - Eğer
r_1
mükemmel bir kare değil, yukarıda işlemi yineleyinr_1
sürecine yeni giriş olarak. Belirtilene kadarr_k
mükemmel bir kare olana kadar tekrarlayıns
. - Değerini yazdırın
sqrt(s)
.
Giriş herhangi bir formatta alınabilir. Bunun n
pozitif bir tam sayı olduğunu varsayabilirsiniz . Herhangi birinin önünde sıfır varsa r_k
(ve r_k
≠ 0), sıfır yok sayılabilir.
Test senaryoları
İşte bazı test örnekleri. İşlem yukarıdaki adımları göstermektedir.
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
Bu kod golf. Standart kurallar geçerlidir. En kısa cevap (bayt cinsinden) kazanır.
while x**.5%1:
belki?