// a:=x, b:=y.
// Solange b gerade, setze a:=a*a, b:=b/2. [a^b bleibt invariant, = x^y.]
// c:=a.
// Solange b:=floor(b/2) >0 ist,
// setze a:=a*a, und falls b ungerade, setze c:=a*c.
// Ergebnis c.
// a:=x, b:=y.
// Solange b gerade, setze a:=a*a, b:=b/2. [a^b bleibt invariant, = x^y.]
// c:=a.
// Solange b:=floor(b/2) >0 ist,
// setze a:=a*a, und falls b ungerade, setze c:=a*c.
// Ergebnis c.