Учитывая, что у вас есть бесконечная последовательность чисел, определенная следующим образом:
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
...
Последовательность представляет собой сумму делителей n
, включая 1 и n
.
Учитывая положительное целое число в x
качестве входных данных, рассчитайте наименьшее число, n
которое даст результат больше, чем x
.
Контрольные примеры
f(100) = 48, ∑ = 124
f(25000) = 7200, ∑ = 25389
f(5000000) = 1164240, ∑ = 5088960
Ожидаемый результат
Ваша программа должна возвращать как n
и сумму его делителей, например так:
$ ./challenge 100
48,124
правила
Это код-гольф, поэтому выигрывает самый короткий код в байтах на каждом языке.
n
и другое f(n)
, но вы нигде не говорите об этом в спецификации.
f(1000) = 48
? Делитель сумма 48
составляет124
n
s делителей? Вы, вероятно, захотите заявить об этом явно.