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.