Sa se descompuna un numar in factori primi memorand rezultatul sub forma unui vector de structuri. 

Fiecare element va cuprinde doua campuri: 

1. unul care contine divizorul prim 

2. unul care contine puterea la care apare acesta in descompunere 

#include<iostream.h> 

 struct factor 

 long d; 

 int p; 

} x[20]; 

 long m; 

int n, i;

void main()

 cout<<"Introduceti numarul: "; 

 cin>>m; 

 long a=2; 

 while( m != 1 ) 

 { 

 int q=0; //puterea la care apare a in descompunerea numarului m

while( m%a == 0 )

 { 

 m = m/a; 

 q++; 

 } 

 if( q != 0 ) 

 { 

 n++; 

 x[n].d = a; 

 x[n].p = q; 

 } 

if( a == 2 ) a = 3;

 else a+=2; 

 } 

  cout<<"Descompunerea in factori primi: \n"; 

 for(i=1; i<=n; i++) 

 cout<<x[i].d<<"^"<<x[i].p<<endl;