Fak1[n_] := 
      Module[{x, k}, 
x = 1; 
Do[
          x = k*x, {k, n}]; 
x]

Fak1[100]

Fak2[n_] := Apply[Times, Table[k, {k, n}]]

Fak2[100]

Fak3[n_] := (∏_(k = 1)^n) k

Fak3[100]

Fak4[0] = 1;
Fak4[n_] := n*Fak4[n - 1]

Fak4[0] = 1;
Fak4[n_] := n*Fak4[n - 1] /; IntegerQ[n] && n > 0

Fak4[100]

Trace[Fak1[5], x]

Trace[Fak4[5], Fak4]

Nest[Sin, x, 5]

Fak5[n_] := Fold[#1*#2 &, 1, Table[k, {k, n}]]

Fak6[n_] := Fold[Times, 1, Range[n]]

Fak7[
        n_] := Nest[{#[[1]] + 1, #[[2]]*#[[1]]} &, {1, 1}, 
          n][[2]]

FixedPoint[Cos, 1.0]

Plot[{x, Cos[x]}, {x, 0, 1}, AspectRatio -> Automatic]

NewtonVerfahren[f_, init_] := 
      FixedPoint[# - f[#]/(f')[#] &, init]

NewtonVerfahren[Sin, 3. ]