Gerador de potencias

Ola a todos! eu quero um programa que lê um valor positivo e escreve a decomposição desse valor em somas de potências de 2, por ordem decrescente. Considere que o valor lido é inferior a 2^31.
Algo do tipo :
Valor ? 45
45 = 2^5 + 2^3 + 2^2 + 2^0

Nao posso usar metodos das classes Arrays e Math do package java.lang.

ja tenho isto[code]mport java.util.*;

public class Power2{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int input;
int currentPower = 0;
System.out.println(“Insira um numero:”); input= in.nextInt();

    while (input > 0) {
if ((input & 1) == 1) { // se, por exemplo, 10000101 AND  00000001 for igual a 1
    // imprime 2^currentPower ou guarda currentPower para imprimir mais tarde
}
   
currentPower++; // incrementa o currentPower
input = input >> 1; // faz um shift right ao valor binário, por exemplo: 10000101 >> 1 = 01000010

}
}
}[/code]

Isso é problema da facul, certo?

sim…