Se citeste un numar natural n. Sa se afiseze toate modurile in care poate fi descompus ca produs de numere naturale diferite de 1 si n.
Exemplu:
36 poate fi descompus ca:
2*2*3*3
2*2*9
2*18
3*3*4
.....
#include<iostream>
using namespace std;
int n, a[100],m,x[100];
void afis(int k)
{
for(int i=1;i<=k;i++) cout<<x[i]<<" ";
cout<<endl;
}
void back(int k, int p)
{
if(p==n) afis(k-1);
else
for(int i=1;i<=m;i++)
{
x[k]=a[i];
if(p*x[k]<=n && x[k]>=x[k-1]) back(k+1,p*x[k]);
}
}
int main()
{
cin>>n;
m=0;
for(int i=2;i<=n/2;i++)
if(n%i==0) a[++m]=i;
back(1,1);
return 0;
}