Next: Saída Up: Enunciados Previous: Repete
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]