Cho bạn có một dãy số vô hạn được xác định như sau:
1: 1 = 1
2: 1 + 2 = 3
3: 1 + 3 = 4
4: 1 + 2 + 4 = 7
5: 1 + 5 = 6
6: 1 + 2 + 3 + 6 = 12
7: 1 + 7 = 8
...
Chuỗi là tổng của các ước của n
, bao gồm 1 và n
.
Cho một số nguyên dương x
làm đầu vào, tính số thấp nhất n
sẽ tạo ra kết quả lớn hơn x
.
Các trường hợp thử nghiệm
f(100) = 48, ∑ = 124
f(25000) = 7200, ∑ = 25389
f(5000000) = 1164240, ∑ = 5088960
Sản lượng dự kiến
Chương trình của bạn sẽ trả về cả hai n
và tổng của các ước của nó, như vậy:
$ ./challenge 100
48,124
Quy tắc
Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte, trong mỗi ngôn ngữ sẽ thắng.
n
và f(n)
, nhưng bạn không nói như vậy ở bất cứ đâu trong đặc tả.
f(1000) = 48
? Tổng số chia của 48
là124
n
ước số? Có lẽ bạn sẽ muốn nói rõ điều đó.