Forum: Programmieren allgemein
by negaH,
26. Dez 2005
Erklären wir das mal alles an einem Beispiel.
10! = 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10
die 1 können wir entfernen sie ist die Einheit und damit irrelevant
10! = 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10
Forum: Programmieren allgemein
by negaH,
26. Dez 2005
@salamahachy:
die Anzahl der Nullen kannst du komplett ohne Beechnung der Fakultät ausrechnen.
Schau dir mal obige Expansion von 100! ganz genau an. Wichtig dabei sind alle Primzahlexponenten zur Basis 2 und Basis 5 denn nur diese können mit 2*5 = 0 im Resulat sein.
Vereinfacht für die Basis 10 also so:
function FactorialTrailingZerosBase10(N: Int64): Int64;
begin
Forum: Programmieren allgemein
by negaH,
14. Okt 2005
Anbei mein Program zur exakten Berechnung der Fakultät. Einfach enpacken, im Menu auf \Factorial\Schönhage\ klicken, 50000 eingeben, return drücken, 89ms warten und Y drücken um die komplette Zahl zu sehen.
Wenn ihr im Menu \Factorial\Display shortest Primepower Path\ anklickt und dann 100 eingebt so seht ihr die Formel mit der man 100! am schnellsten berechnen kann.
Input N! ? 100
...