Orden de crecimiento complicada para bucles

Para el siguiente fragmento de código, ¿cuál es el orden de crecimiento en términos de N?

int sum = 0;
for (int i = 1; i <= N; i = i*2)
  for (int j = 1; j <= N; j = j*2)
    for (int k = 1; k <= i; k++)
        sum++;

He pensado que hay un término lgN, pero estoy atascado en la evaluación de esta parte: lgN (1 + 4 + 8 + 16 + ....). ¿Cuál será el último término de la secuencia? Necesito el último término para calcular la suma.

Respuestas a la pregunta(2)

Su respuesta a la pregunta