Richtungen
Schreiben Sie ein Programm, das bei einer eingegebenen Ganzzahl n ( n >= 0
) die kleinste positive Ganzzahl m ausgibt, wobei:
n = a[1]^b[1] + a[2]^b[2] + a[3]^b[3] + ... + a[k]^b[k]
a
undb
sind endliche Folgen gleicher Länge- Alle Elemente von
a
sind kleiner alsm
- Alle Elemente von
b
sind kleiner alsm
- Alle Elemente von
a
sind verschieden und ganze Zahlena[x] >= 0
- Alle Elemente von
b
sind verschieden und ganze Zahlenb[x] >= 0
a[x]
undb[x]
sind nicht beide 0 (da 0 ^ 0 unbestimmt ist)
Das ist Code-Golf , also gewinnen die wenigsten Bytes.
Beispiele
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
dann m<3
anschließend m<4
usw. , bis ich eine Summe finden , das gleich n
. Ich habe auch darüber nachgedacht, die Summe für 0
keine Terme zu haben, aber was ist dann die Ausgabe? m>?
n = a[1]^b[1] + a[2]^b[2] + ... + a[k]^b[k]
.
a
und b
sind endliche Folgen von Längen 0
, so dass es keine Ganzzahl m
gibt, die die Bedingungen nicht erfüllt, und da es keine kleinste Ganzzahl gibt, ist die Antwort nicht definiert. Mögliche Korrekturen wären, nach der kleinsten natürlichen Zahl m
(in diesem Fall sollten Sie die erwartete Antwort dort auf ändern 0
) oder nach der kleinsten positiven Ganzzahl zu fragen m
.