Ciao a tutti

Sto cercando di costruire una routine che dato un numero intero pari in input mi stampi a video tutti i numeri divisibili per due.
La routine deve terminare quando n=1

Ad esempio inserisco 8.
Quindi nel primo ciclo farà 8/2=4, il secondo poi 4/2=2, poi 2/2=1 e quindi si ferma perché n=1

Ho provato con questo codice ma è sbagliato perché si ferma alla prima divisione, non riesco a capire come iterare il ciclo

Grazie

codice:
#include <iostream>
using namespace std;
int main (){
 int n,ris;
 
 //imposto le variabili
 ris=0;
 n=0;
 cout<<"Inserisci numero intero maggiore di zero"<<endl;
 cin>>n;
  do {
       if(n%2==0)
   {
       ris=n/2;
       n=ris;
       cout<<ris;
      }
      
           
     } while(n==1);
     
 }