Größerer Datentyp als long long

Hi zusammen
Momentan schreibe ich ein Programm, in dem unter anderem Fakultäten berechnet werden müssen. Das Problem ist aber, dass die Zahlen "schon" bei 21Fakultät zu groß sind. Meine Frage ist also: gibt es einen Datentyp, der größer als long long ist und somit Zahlen, die vielleicht in den Bereich 1.0E50 oder so gehen berechnet werden können? Ich habe schon long long long ausprobiert, aber da kommt die Meldung:

'long long long' is too long for GCC

Was mich vermuten lässt, dass höhere Zahlen einfach nicht gespeichert werden können, aber wer weiß :).
Ich wäre über Lösungsvorschläge sehr dankbar.

Evtl könnte Dir unsigned long long noch etwas Luft verschaffen. Ansonsten sind Microprozessoren nicht als Numbercruncher geplant.

Gruß Tommy

Edit: Evtl. hilft Dir die BigNumber-Lib weiter

Danke :slight_smile: ich schaue es mir mal an

Bis zu welcher Fakultät möchtest Du denn kommen? Und mit welchem Arduino, der so viele Bytes an Speicher frei hat?

Da es Dir anscheinend nicht auf das Ergebnis ankommt - das wäre am PC leichter zu berechnen - dann fannge doch an mit einer BigInteger Klasse und den zugehörigen Operatoren. Beispiele dafür dürfte es auf SourceForge o.ä. schon geben.

mit welchem Arduino, der so viele Bytes an Speicher frei hat

1050 = ca. 2167, dafür braucht man also 21 byte.
Selbst wenn man für n! = (n-1)! * n mehrere solcher Zahlen braucht, ist der RAM-Bedarf kein Problem.

Den passenden Datentyp kannst/darfst/musst du dir natürlich machen. Das ist doch der Sinn des Ganzen, oder?