Anda diberi bilangan bulat negatif ndan bilangan bulat p >= 2. Anda perlu menambahkan beberapa pkekuatan-ke-dua ( p=2artinya kuadrat, p=3artinya kubus) untuk mendapatkan n. Ini selalu untuk non-negatif n, tetapi Anda tidak tahu banyak pkekuatan-ke-10 (dari bilangan bulat positif ) apa pun yang Anda perlukan.
Ini adalah tugas Anda: cari jumlah minimum pkekuatan -th yang bisa dijumlahkan n.
Contohnya
>>> min_powers(7, 2)
4 # you need at least four squares to add to 7
# Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7
>>> min_powers(4, 2)
1 # you need at least one square to add to 4
# Example: (2)^2 = 4
>>> min_powers(7, 3)
7 # you need at least seven cubes to add to 7
# Example: 7*(1)^3 = 7
>>> min_powers(23, 3)
9 # you need at least nine cubes to add to 23
# Example: 2*(2)^3 + 7*(1)^2 = 2*8 + 7*1 = 23
Artikel Wikipedia terkait tentang masalah ini, masalah Waring .
Aturan
Kode Anda harus berupa program atau fungsi.
Input adalah dua bilangan bulat
ndanpdalam urutan apa pun. Anda dapat menganggap semua input valid (napakah bilangan bulat positif,p >= 2Output adalah bilangan bulat yang mewakili jumlah daya yang dibutuhkan untuk dijumlahkan
n.Ini adalah kode golf, sehingga program terpendek menang., Belum tentu yang paling efisien.
Setiap dan semua bawaan diizinkan.
Seperti biasa, jika masalahnya tidak jelas, beri tahu saya. Semoga berhasil dan bermain golf dengan baik!