W końcu udało mi się to zaklepać (prawie), ale mam błędy - funkcja silnia() się nie wywołuje.
Algorytm liczenia silni jest następujący:
W tablicy T trzymam sobie cyfry. Pięrwszą ustawiam jako 1, reszta to zera.
T={1, 0, 0, 0, 0...}
Następnie kazdą z cyfr w T mnoże w pętli przez kolejne naturalne liczby k>1
*2:
T={2, 0, 0, 0, 0...}
*3:
T={6, 0, 0, 0, 0...}
*4:
T={24, 0, 0, 0, 0...}
W każdym obiegu pętli (TODO - to mozna zoptymalizowac i robic to co kilka pętli) sprawdzam, czy jakas liczba przekroczyła 10 i "równam":
T={4, 2, 0, 0, 0...}
liczba_cyfr jest zmienną, ktora trzyma ile mamy cyfr stanowiących wynik w T
np dla
T={4, 2, 0, 0, 0...}
nie ma sensu mnożyć przez te zera, więc liczba_cyfr == 2 w tym wypadku.
Wynik odczytujemy od tyłu. Być może rozwiązanie jest banalne, ale siedze nad tą silnią drugi dzien i zaczynam już zastanawiać się nad elementarnymi komendami.