instruções
Escreva um programa que, dado um número inteiro de entrada n ( n >= 0
), produz o menor número inteiro positivo m onde:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]
a
eb
são seqüências finitas do mesmo comprimento- todos os elementos de
a
são menores quem
- todos os elementos de
b
são menores quem
- todos os elementos de
a
são diferentes e inteirosa[x] >= 0
- todos os elementos de
b
são diferentes e inteirosb[x] >= 0
a[x]
eb[x]
não são ambos 0 (já que 0 ^ 0 é indeterminado)
Isso é código-golfe , e o menor número de bytes vence.
Exemplos
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
então m<3
então m<4
etc. até encontrar uma soma igual n
. Além disso, pensei em ter a soma 0
como sem termos, mas qual é o resultado? m>?
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k]
.
a
e b
são seqüências finitas de comprimento 0
, então não há um número inteiro m
que não satisfaça as restrições e, como não há um número inteiro menor, a resposta não é definida. As possíveis correções seriam pedir o menor número natural m
(nesse caso, você deve alterar a resposta esperada para lá 0
) ou o menor número inteiro positivo m
.