Pengantar dan Kredit
Kita semua tahu dan menyukai aturan kita yang luar biasa untuk menguji apakah suatu angka dapat dibagi dengan 11 atau 3, yang merupakan jumlah yang pintar dari angka-angka tersebut. Sekarang tantangan ini membawa ini ke tingkat yang baru, dengan mengharuskan Anda menghitung jumlah digit dan kemudian memeriksa apakah hasilnya adalah kuadrat bilangan bulat sempurna, yang tidak satu pun dari operasi yang biasanya dapat dilakukan sangat singkat. Karena properti ini juga sangat sulit dilihat ketika melihat angka, kami ingin ini dilakukan untuk seluruh daftar angka sehingga kami dapat menyelamatkan pekerjaan manusia. Jadi ini adalah Anda tantangan sekarang!
Ini adalah tugas di program pemrograman fungsional universitas saya. Tugas ini sekarang ditutup dan telah dibahas di kelas dan saya memiliki izin profesor saya untuk mempostingnya di sini (saya bertanya dengan jelas).
Spesifikasi
Memasukkan
Input Anda adalah daftar bilangan bulat non-negatif, dalam format I / O standar apa pun.
Anda dapat memilih format daftar sesuai kebutuhan bahasa Anda
Keluaran
Outputnya adalah daftar bilangan bulat, dalam format I / O standar apa pun.
Melakukan apa?
Saring setiap bilangan bulat dari daftar input yang jumlah digitnya bukan persegi (dari bilangan bulat).
Urutan elemen tidak dapat diubah, mis. Jika Anda mendapatkannya [1,5,9]
Anda tidak dapat kembali[9,1]
Kasing sudut potensial
0 adalah bilangan bulat non-negatif dan dengan demikian input yang valid dan 0 juga merupakan akar bilangan bulat yang valid, misalnya 0 dianggap sebagai bilangan bulat bilangan bulat.
Daftar kosong adalah input dan output yang valid juga.
Yang menang?
Ini adalah kode-golf sehingga jawaban tersingkat dalam byte menang!
Aturan standar berlaku tentu saja.
Uji Kasus
[1,4,9,16,25,1111] -> [1,4,9,1111]
[1431,2,0,22,999999999] -> [1431,0,22,999999999]
[22228,4,113125,22345] -> [22228,4,22345]
[] -> []
[421337,99,123456789,1133557799] -> []
Contoh Langkah-demi-Langkah
Example input: [1337,4444]
Handling first number:
Sum of the digits of 1337: 1+3+3+7=14
14 is not an integer square, thus will be dropped!
Handling second number:
Sum of the digits of 4444: 4+4+4+4=16
16 is an integer square because 4*4=16, can get into the output list!
Example output: [4444]