// Nos valemos de la formula 1+2+...+n = n(n+1)/2
// Recorremos la lista de Cantor como si fuera un triángulo. Me referiré más adelante a las "filas" como "filas del triángulo" y no "filas de la lista de Cantor".
// Las n primeras filas de un triángulo tienen 1+2+...+n elementos. Trataremos de ver en qué fila estamos haciendo la comparación n(n+1)/2 =? K. Es decir, n(n+1)=? 2K.
Input: posición K
r=(int)sqrt(2.0*K);
if(r*r+1 >=K) P=r+1; // P es la fila
else P=r+2;
//--------
if (p=(int)p/2 * 2) //si P es par.... recorremos la fila del triángulo de arriba-derecha a abajo-izquierda
el numero es [K- P*(P+1)/2 +1] / [P-(K-P(P+1)/2) +1]
else //si P es impar.... recorremos la fila del triángulo de abajo-izquierda a arriba-derecha
el numero es [P-(K-P(P+1)/2) +1] / [1+(K-P(P+1)/2)-P]
Así a grandes trazos esto es el pseudocódigo. No tengo ganas de repasarlo, y alomejor en las cuentas me he colado con algun +1 que falte/sobre o algún signo cambiado. Compruébalo, pero la idea es correcta.