Направления
Напишите программу, которая, учитывая входное целое число 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
.