Số lượng phân vùng của một số nguyên là số cách mà số nguyên có thể được biểu diễn dưới dạng tổng của các số nguyên dương.
Ví dụ:
5
4 + 1
3 + 2
3 + 1 + 1
2 + 2 + 1
2 + 1 + 1 + 1
1 + 1 + 1 + 1 + 1
Có 7 cách để biểu thị số 5, do đó 7 là số phân vùng tương ứng với số 5.
Hướng
Viết chương trình lấy số nguyên dương làm đầu vào và xuất hai số tạo hai số phân vùng gần nhất thành số đầu vào.
- Đầu vào phải là 1 số nguyên dương.
- Nếu đầu vào không phải là số phân vùng, đầu ra phải là 2 số nguyên dương khác nhau tạo ra hai số phân vùng gần nhất với số đầu vào. (Nếu hai số phân vùng là ứng cử viên bằng nhau cho một trong các số đầu ra, thì bạn chọn loại nào không quan trọng.)
- Nếu đầu vào là số phân vùng, đầu ra phải là 1 số nguyên dương tạo ra số đầu vào.
- Đầu vào và đầu ra có thể ở bất kỳ định dạng hợp lý.
- Bạn có thể cho rằng đầu vào sẽ không lớn hơn 100 triệu (ví dụ: đầu ra sẽ không bao giờ lớn hơn 95).
- Các hàm tích hợp để tính toán số phân vùng không được phép, cùng với các lỗ hổng Tiêu chuẩn khác .
- Đây là mã golf , vì vậy số byte ít nhất sẽ thắng.
Ví dụ
Input: 66
Output: 11, 12
(Số phân vùng tương ứng với số 11 và 12 là 56 và 77, là hai số phân vùng gần nhất với 66.)
Input: 42
Output: 10
(Số 42 đã là số phân vùng, vì vậy chỉ cần xuất số tương ứng với số phân vùng.)
Input: 136
Output: 13, 14
(Hai số phân vùng gần nhất với 136 thực sự là cả BÀI hơn 136 (ví dụ 101 và 135), do đó, đầu ra là 13 và 14 trái ngược với 14 và 15.)
Input: 1
Output: 0 or 1
(Cả 0 và 1 đều là đầu ra hợp lệ trong trường hợp đặc biệt này.)
Input: 2484
Output: 26, 25 or 26, 27
(Cả hai kết quả đầu ra có giá trị, bởi vì năm 2484 là tương đương d i lập trường từ năm 1958 và 3010.)
Input: 4
Output: 3, 4
(Yup)
5
là ở trên cùng. (Tôi sẽ thêm làm rõ nếu bạn nghĩ rằng nó không đủ rõ ràng.)