Es raro eso de que "la potencia funciona mal"... un lenguaje puede tener bugs, pero nunca tan evidentes que no fueran corregidos.
En cualquier caso, una potencia es una serie de mutiplicaciones, luego ejecuta un bucle.
Potencia Bucle
---------------------------------------
10^0 =1
10^1 = 10
10^2 = 100 ---->10x10
10^3 = 1000 ----> 10x10x10
10^4 = 10000 ----> 10x10x10x10
...
Al final restas 1 y ya tienes todos los 9...
los caso 0 y 1 puedes tratarlos en un 'else'
if n>= 2
...bucles
else
... los caso 0 y 1 se tratan aquí.
end if
p.d.: Más aún antes del bucle puede condicionarse para los casos 0 y 1. Aunque el código en ambos casos no difiere mucho en cuanto a la ncantidad de líneas de código...
x=1
bucle para k desde 1 hasta n
x= (x * 10)
siguiente
devolver x-1