Bạn được cung cấp một số nguyên không âm nvà một số nguyên p >= 2. Bạn cần thêm một số psức mạnh thứ ( p=2có nghĩa là hình vuông, p=3có nghĩa là hình khối) với nhau để có được n. Đây luôn là đối với bất kỳ không âm n, nhưng bạn không biết nhiều pquyền hạn -thứ (của bất kỳ dương tính số nguyên), bạn sẽ cần.
Đây là nhiệm vụ của bạn: tìm số lượng pquyền hạn tối thiểu có thể tổng hợp n.
Ví dụ
>>> 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
Một bài viết Wikipedia liên quan về vấn đề này, vấn đề của Waring .
Quy tắc
Mã của bạn phải là một chương trình hoặc một chức năng.
Đầu vào là hai số nguyên
nvàptheo thứ tự bất kỳ. Bạn có thể giả sử tất cả các đầu vào là hợp lệ (nlà bất kỳ số nguyên dương nào,p >= 2Đầu ra là một số nguyên biểu thị số lượng quyền hạn cần thiết để tổng hợp
n.Đây là mã golf, vì vậy chương trình ngắn nhất sẽ thắng., Không nhất thiết là hiệu quả nhất.
Bất kỳ và tất cả các phần dựng sẵn đều được cho phép.
Như mọi khi, nếu vấn đề không rõ ràng, xin vui lòng cho tôi biết. Chúc may mắn và chơi golf tốt!