Alô pessoal!
Após arremessar a minha cabeça várias vezes contra a parede consegui encontrar um algoritmo para encontrar o dito cujo k-ésimo número da tal sequência. Nao se preocupem, foi só força de expressão...
Lá vai...
Observem que os números da forma 2^a*3^b*5^c com a, b, c, inteiros não negativos podem ser divididos em 7 conjuntos disjuntos, a saber:
A = {2^a, a > 0}, B = {3^b, b > 0}, C = {5^c, c > 0}, D = {2^a*3^b, a > 0 e b > 0},
E = {2^a*5^c, a > 0 e c > 0}, F = {3^b*5^c, b > 0 e c > 0},
G = {2^a*3^b*5^c, a > 0 e b > 0 e c > 0}. Pois bem...
Aqui esta o algoritmo..:
Input k
U(1) = 1
se k > 1 entao
chamemos os numeros 2, 3, 5, 6, 10, 15, 30 de numeros base dos conjuntos A, B, C, D, E, F, G respectivamente...
a <- 2
b <- 3
c <- 5
d <- 6
e <- 10
f <- 15
g <- 30
n <- 2
(1) escolha o menor numero entre a, b, c, d, e, f, g para ser o enesimo termo da sequencia, o U(n)
este numero escolhido, x, irá pertencer a um dos sete conjuntos mencionados acima, digamos X...
multiplique o numero base de X por um numero da propria sequencia, o menor possivel, y, mas que ainda nao tenha sido escolhido para multiplicar um numero de X anteriormente, de modo que o resultado continue a pertencer a X e faca x ter o valor deste produto
Obs..: y ja tera sido calculado ...
n <- n+1
se n <= k entao retorne para (1)
fim-se
retorne U(k)
Fim.
se alguém encontrar outra solucao nao deixe de mandar pra lista...
caso o algoritmo tenha ficado ambiguo posso manda-lo escrito em uma linguagem formal (uma linguagem de programacao)...
entao poderiamos achar o decimo numero deste modo..:
U(1) = 1
(2, 3, 5, 6, 10, 15, 30) => U(2) = 2
(4, 3, 5, 6, 10, 15, 30)
(4, 3, 5, 6, 10, 15, 30) => U(3) = 3
(4, 9, 5, 6, 10, 15, 30)
(4, 9, 5, 6, 10, 15, 30) => U(4) = 4
(8, 9, 5, 6, 10, 15, 30)
(8, 9, 5, 6, 10, 15, 30) => U(5) = 5
(8, 9, 25, 6, 10, 15, 30)
(8, 9, 25, 6, 10, 15, 30) => U(6) = 6
(8, 9, 25, 12, 10, 15, 30)
(8, 9, 25, 12, 10, 15, 30) => U(7) = 8
(16, 9, 25, 12, 10, 15, 30)
(16, 9, 25, 12, 10, 15, 30) => U(8) = 9
(16, 27, 25, 12, 10, 15, 30)
(16, 27, 25, 12, 10, 15, 30) => U(9) = 10
(16, 27, 25, 12, 20, 15, 30)
(16, 27, 25, 12, 20, 15, 30) => U(10) = 12
Valeu!