Sa se scrie o functie recursiva care sa realizeze descompunerea unui numar in factori primi

#include<iostream.h>

void desc(int n,int,d,int p)

{

if(n>1)

 if(n%d==0) desc(n/d,d,p+1);

  else 

  {

    if (p!=0) cout<<d<<" la puterea "<<p<,endl;

    desc(n,d+1,0);

  }

else if (p!=0) cout<<d<<" la puterea "<<p;

}

void main()

{

int n;

cin>>n;

desc(n,2,0);

}