Camachogetallen zijn natuurlijke getallen die gelijk zijn aan de som van hun cijfers verheven tot elke macht van één tot het aantal cijfers. Voor een Camachogetal $$n \in \mathbb{N}_0$$ dat bestaat uit de cijfers $$c_1 c_2 \ldots c_m$$ moet dus gelden dat \[ \sum_{p=1}^{m} \left( c_1^p + c_2^p + \cdots + c_m^p \right) = n \]
Zo is 336 bijvoorbeeld een Camachogetal omdat \[ (3 + 3 + 6) + (3^2 + 3^2 + 6^2) + (3^3 + 3^3 + 6^3) = 336 \]
Schrijf een functie camachoterm waaraan twee getallen $$n, p \in \mathbb{N}_0$$ (int) moeten doorgegeven worden. Als $$n$$ bestaat uit de cijfers $$c_1 c_2 \ldots c_m$$ dan moet de functie het resultaat (int) van de volgende bewerking teruggeven: \[ c_1^p + c_2^p + \cdots + c_m^p \]
Schrijf een functie camachosom waaraan een getal $$n \in \mathbb{N}_0$$ (int) moet doorgegeven worden. Als $$n$$ bestaat uit de cijfers $$c_1 c_2 \ldots c_m$$ dan moet de functie het resultaat (int) van de volgende bewerking teruggeven: \[ \sum_{p=1}^{m} \left( c_1^p + c_2^p + \cdots + c_m^p \right) \]
Schrijf een functie iscamacho waaraan een getal $$n \in \mathbb{N}_0$$ (int) moet doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven, die aangeeft of $$n$$ een Camachogetal is.
Schrijf een functie volgende_camacho waaraan een getal $$n \in \mathbb{N}_0$$ (int) moet doorgegeven worden. De functie moet het kleinste Camachogetal (int) teruggeven dat groter is dan $$n$$.
>>> camachoterm(336, 1)
12
>>> camachoterm(336, 2)
54
>>> camachoterm(336, 3)
270
>>> camachosom(336)
336
>>> camachosom(4538775)
4538775
>>> camachosom(183670618569)
499096875990
>>> iscamacho(336)
True
>>> iscamacho(4538775)
True
>>> iscamacho(183670618569)
False
>>> volgende_camacho(60)
90
>>> volgende_camacho(4537541)
4538775
>>> volgende_camacho(183670618569)
183670618662