Next: Saída Up: Enunciados Previous: Repete

Potências

Escreva um predicado potencias/3 que deve ser chamado fornecendo no primeiro argumento uma lista de inteiros positivos maiores que 1, no segundo argumento um inteiro positivo N e o terceiro argumento livre (por instanciar). O predicado deve terminar com sucesso e unificar o terceiro argumento com a lista que contém (por ordem crescente) os N inteiros mais pequenos que são uma potência positiva (não nula) de um dos elementos do primeiro argumento. Alguns exemplos:

         ?- potencias([3,5,4],17,L).
            L = [3,4,5,9,16,25,27,64,81,125,243,256,625,729,1024,2187,3125]
         ?- potencias([2,3,4,5,6,7,8,9,10],50,L).
            L = [2,3,4,5,6,7,8,9,10,16,25,27,32,36,49,64,81,100,125,128,216,
                 243,256,343,512,625,729,1000,1024,1296,2048,2187,2401,3125,
                 4096,6561,7776,8192,10000,15625,16384,16807,19683,32768,
                 46656,59049,65536,78125,100000,117649]
         ?- potencias([2,9999999,9999999],20,L).
            L = [2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,
                 65536,131072,262144,524288,1048576]
         ?- potencias([4,2],6,L).
            L = [2,4,8,16,32,64]




1999-04-01