iniciar-programa
define-nueva-instruccion regresa como
inicio
   gira-izquierda;
   gira-izquierda;
   mientras frente-libre hacer
      avanza;
   gira-izquierda;
   gira-izquierda;
fin;

define-nueva-instruccion criba(n) como
inicio
   repetir precede(n) veces
      avanza;
   mientras frente-libre hacer
   inicio
      repetir n veces
        si frente-libre entonces
          avanza;
      si junto-a-zumbador entonces
         coge-zumbador;
   fin;
 fin;

define-nueva-instruccion primo2(n) como
inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
               primo2(sucede(n));
               si junto-a-zumbador entonces
                 repetir 2 veces
                    deja-zumbador;
            fin;
         fin
         sino
           deja-zumbador;
      fin
      sino
      inicio
         repetir 2 veces
            repetir precede(n) veces
              deja-zumbador;
         deja-zumbador;
      fin;
fin;
define-nueva-instruccion primo3(n) como
inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
               coge-zumbador;
               si junto-a-zumbador entonces
               inicio
               primo3(sucede(n));
               si junto-a-zumbador entonces
                  repetir 3 veces
                     deja-zumbador;
               fin;
            fin
            sino
              repetir 2 veces
                deja-zumbador;
         fin
         sino
           deja-zumbador;
      fin;
fin;
define-nueva-instruccion primo5(n) como
inicio
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
               coge-zumbador;
               si junto-a-zumbador entonces
               inicio
                 coge-zumbador;
                 si junto-a-zumbador entonces
                 inicio
                    coge-zumbador;
                    si junto-a-zumbador entonces
                    inicio
                      primo5(sucede(n));
                      si junto-a-zumbador entonces
                      repetir 5 veces
                         deja-zumbador;
                     fin;
                  fin
                  sino
                     repetir 4 veces
                        deja-zumbador;
               fin
               sino
               repetir 3 veces
                     deja-zumbador;
            fin
            sino
              repetir 2 veces
                deja-zumbador;
         fin
         sino
           deja-zumbador;
      fin;
fin;
define-nueva-instruccion primo7(n) como
inicio
   si junto-a-zumbador entonces
   inicio
      coge-zumbador;
      si junto-a-zumbador entonces
      inicio
         coge-zumbador;
         si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
               coge-zumbador;
               si junto-a-zumbador entonces
               inicio
                  coge-zumbador;
                  si junto-a-zumbador entonces
                  inicio
                     coge-zumbador;
                     si junto-a-zumbador entonces
                     inicio
                        coge-zumbador;
                        si junto-a-zumbador entonces
                        inicio
                           si junto-a-zumbador entonces
                              primo7(sucede(n));
                        fin;
                     fin
                     sino
                        deja-zumbador;
                  fin
                  sino
                     deja-zumbador;
               fin
               sino
                  deja-zumbador;
            fin
            sino
                deja-zumbador;
         fin
         sino
           deja-zumbador;
      fin
      sino
         deja-zumbador;
      fin;
fin;
define-nueva-instruccion dfs como
inicio
   repetir 4 veces
   inicio
      si frente-libre entonces
      inicio
         avanza;
         si junto-a-zumbador entonces
         inicio
            coge-zumbador;
            si junto-a-zumbador entonces
            inicio
               coge-zumbador;
                si no-junto-a-zumbador entonces
                   dfs
                sino
                inicio
                   repetir 2 veces
                      deja-zumbador;
                   primo2(0);
                   si junto-a-zumbador entonces
                   inicio
                   coge-zumbador;
                   si junto-a-zumbador entonces
                   inicio
                      repetir 2 veces
                         coge-zumbador;
                      si no-junto-a-zumbador entonces
                         dfs
                      sino
                      inicio
                         repetir 3 veces
                            deja-zumbador;
                         primo3(0);
                         si junto-a-zumbador entonces
                         inicio
                         coge-zumbador;
                         si junto-a-zumbador entonces
                         inicio
                            repetir 4 veces
                               coge-zumbador;
                            si no junto-a-zumbador entonces
                               dfs
                            sino
                            inicio
                               repetir 5 veces
                                  deja-zumbador;
                               primo5(0);
                               si junto-a-zumbador entonces
                               inicio
                               coge-zumbador;
                               si no junto-a-zumbador entonces
                                  dfs
                               sino
                               inicio
                                  repetir 6 veces
                                     coge-zumbador;
                                  si no-junto-a-zumbador entonces
                                     dfs
                                  sino
                                  inicio
                                     repetir 7 veces
                                        deja-zumbador;
                                     primo7(0);
                                     si junto-a-zumbador entonces
                                     inicio
                                        coge-zumbador;
                                        dfs;
                                      fin;
                                  fin;
                               fin;
                               fin;
                            fin;
                            fin;
                         fin;
                      fin;
                   fin;
                   fin;
                fin;
            fin;
         fin;
         gira-izquierda;
         gira-izquierda;
         avanza;
         gira-izquierda;
         gira-izquierda;
      fin;
      gira-izquierda;
   fin;
   apagate;
fin;
    inicia-ejecucion
       mientras junto-a-zumbador hacer
           coge-zumbador;
       dfs;
        apagate;
    termina-ejecucion
finalizar-programa

