Напрямки
Напишіть програму, яка за вхідним цілим числом n ( n >= 0
) видає найменше додатне ціле число m де:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]
a
іb
є кінцевими послідовностями однакової довжини- всі елементи
a
меншеm
- всі елементи
b
меншеm
- всі елементи
a
є різними і цілимиa[x] >= 0
- всі елементи
b
є різними і цілимиb[x] >= 0
a[x]
іb[x]
не є обома 0 (оскільки 0 ^ 0 невизначено)
Це код-гольф , тому виграє найменше байтів.
Приклади
In 0 -> Out 1
Possible Sum:
In 1 -> Out 2
Possible Sum: 1^0
In 2 -> Out 3
Possible Sum: 2^1
In 3 -> Out 3
Possible Sum: 2^1 + 1^0
In 6 -> Out 4
Possible Sum: 2^2 + 3^0 + 1^1
In 16 -> Out 5
Possible Sum: 2^4
In 17 -> Out 4
Possible Sum: 3^2 + 2^3
In 23 -> Out 6
Possible Sum: 5^1 + 3^0 + 2^4 + 1^3
In 24 -> Out 5
Possible Sum: 4^2 + 2^3
In 27 -> Out 4
Possible Sum: 3^3
In 330 -> Out 7
Possible Sum: 6^1 + 4^3 + 3^5 + 2^4 + 1^0
m<2
тоді m<3
і m<4
т.д., поки я не знайду суму, що дорівнює n
. Крім того, я думав про те, щоб сума 0
була без термінів, але тоді, що є результатом? м>?
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k]
.
a
і b
є кінцевими послідовностями довжини 0
, тому немає цілого числа, m
яке б не задовольняло обмеженням, а оскільки немає найменшого цілого числа, відповідь не визначається. Можливими виправленнями буде запит на найменше натуральне число m
(у такому випадку ви повинні змінити очікувану відповідь на 0
) або найменше додатне ціле число m
.