iniciar-programa
define-nueva-instruccion gira(g) como repetir g veces gira-izquierda;
define-nueva-instruccion divide(d) como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
divide(sucede(d));
fin
sino inicio
repetir d veces
deja-zumbador;
avanza;
si no junto-a-zumbador entonces
apagate;
repetir d veces
coge-zumbador;
gira(2);
avanza; avanza;
deja-zumbador;
gira(2);
avanza;
divide(0);
fin;
fin;



define-nueva-instruccion deja(d) como repetir d veces deja-zumbador;
define-nueva-instruccion factorial como inicio
si junto-a-zumbador entonces inicio
coge-zumbador;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja-zumbador;
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(2);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(6);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(24);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(120);
sal-de-instruccion;
fin;

si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(720);
sal-de-instruccion;
fin;

si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(5040);
sal-de-instruccion;
fin;

si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(40320);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(362880);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(3628800);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(39916800);
sal-de-instruccion;
fin;
si junto-a-zumbador entonces inicio
coge-zumbador;
fin
sino inicio
deja(479001600);
sal-de-instruccion;
fin;
fin;
fin;



    inicia-ejecucion
    avanza;
    factorial;
    avanza;
    factorial;
    gira(2);
    avanza;
    gira(2);
    divide(0);
        apagate;
    termina-ejecucion
finalizar-programa
