Định nghĩa
Một số nguyên dương n
là một số thực tế (chuỗi OEIS A005153 ) nếu tất cả các số nguyên dương nhỏ hơn có thể được biểu diễn dưới dạng tổng của các ước số riêng biệt của n
.
Ví dụ, 18
là một số thực tế: các ước của nó là 1, 2, 3, 6, 9 và 18, và các số nguyên dương khác nhỏ hơn 18 có thể được hình thành như sau:
4 = 1 + 3 5 = 2 + 3 7 = 1 + 6
8 = 2 + 6 10 = 1 + 9 11 = 2 + 9
12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 + 6
13 = 1 + 3 + 9 14 = 2 + 3 + 9 15 = 6 + 9
16 = 1 + 6 + 9 17 = 2 + 6 + 9
Nhưng 14
không phải là một con số thực tế: các ước số của nó là 1, 2, 7 và 14, và không có tập hợp con nào trong số này thêm vào 4, 5, 6, 11, 12 hoặc 13.
Thử thách
Viết chương trình, hàm hoặc động từ lấy đầu vào là số nguyên dương x
và trả về hoặc in số thực tế thứ x , được lập chỉ mục từ 1 để thống nhất với OEIS. Mã của bạn phải đủ hiệu quả để có thể xử lý các đầu vào lên tới 250000 trong vòng chưa đầy hai phút trên một máy tính để bàn hợp lý. (NB triển khai tham chiếu của tôi trong Java quản lý 250000 trong chưa đầy 0,5 giây và triển khai tham chiếu của tôi trong Python quản lý nó trong 12 giây).
Các trường hợp thử nghiệm
Input Expected output
1 1
8 18
1000 6500
250000 2764000
1000000 12214770
3000000 39258256