Para lo de la potencia de 2, utiliza el Math.Pow que tiene el .NET Framework y eso ya quedaría algo como Math.pow(2,contador).
Para el caso del label 4, no entendí muy bien los ejemplos, el que entendí fué el de 120, pero es encontrar los pares, para el 120, el 15 no es par, ¿O te refieres a que tiene que mostrar hasta el punto en que al dividir entre dos, mostrar al final el número con el cual se rompió la condición de par?, bueno, al menos así lo entendí y eso lo pudieras hacer con un while por ejemplo...
bool continuar= true;
while(contador>0 && continuar)
{
if(contador%2==0)
{
label4.text+=(contador/2).ToString();
}
else
{
label4.text += (contador/2).ToString();
continuar = false;
break;//Tal vés no es tan necesario esta línea
}
}
Bueno, eso es una idea que hice en la mente, sinceramente no la escribí ni abrí el Visual Studio, así que no esperes que sea perfecto o que funcione a la primera el código
, pero pruebalo bro, al menos y te da una idea de cómo le puedes hacer.
Saludos!;
Morringos Phyps!;