Indicazioni
Scrivi un programma che, dato un numero intero di input n ( n >= 0
), genera il numero intero positivo più piccolo m dove:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]
a
eb
sono sequenze finite della stessa lunghezza- tutti gli elementi di
a
sono minori dim
- tutti gli elementi di
b
sono minori dim
- tutti gli elementi di
a
sono diversi e interia[x] >= 0
- tutti gli elementi di
b
sono diversi e interib[x] >= 0
a[x]
eb[x]
non sono entrambi 0 (poiché 0 ^ 0 è indeterminato)
Questo è code-golf , quindi vince meno byte.
Esempi
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
poi m<3
poi m<4
ecc. Fino a quando non trovo una somma uguale n
. Inoltre, ho pensato di avere la somma per 0
essere senza termini, ma allora qual è l'output? m>?
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k]
.
a
e b
sono sequenze finite di lunghezza 0
, quindi non esiste un numero intero m
che non soddisfi i vincoli e poiché non esiste un numero intero più piccolo, la risposta non è definita. Le possibili soluzioni sarebbero di chiedere il numero naturale più piccolo m
(nel qual caso dovresti cambiare lì la risposta prevista 0
) o il numero intero positivo più piccolo m
.