#include <iostream.h>

#include <conio.h>

int i,n,j,k,prim,S,nr,min,max,sort,op,tip,aux,nrprim,f,cnt,poz,ies;

long v[50], b[50];

 

void citire()

{

   cout<<"Cate numere veti introduce?";

   cin>>n;

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

               {

                           cout<<"Nr"<<i<<"=";

                           cin>>v[i];

               }

   cout<<endl;

}

 

void copiere()

{

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

               b[i]=v[i];

}

 

void afisareA()

{

   cout<<"Iata vectorul A:"<<endl;

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

               cout<<"v["<<i<<"]="<<v[i]<<endl;

   cout<<endl;

}

 

void afispardepeimpar()

{

   cnt=0;

   cout<<"Numerele pare de pe pozitii impare sunt:"<<endl;

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

               if(i%2!=0)

                           if(v[i]%2==0)

                           {

                                                   cout<<"v["<<i<<"]="<<v[i]<<endl;

                                                   cnt++;

                                       }

        if (cnt==0) cout<<"     inexistente"<<endl;       

  

}

 

void afisareprime()

{

 

   cout<<"Numerele prime din vectorul v sunt:"<<endl;

      

   nrprim=0;

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

               {

                      prim=1;

                      for(j=2; j<=v[i]/2; j++)

                                       if(v[i]%j==0) prim=0;

                      if(prim==1)

                           {

                                                   cout<<"v["<<i<<"]="<<v[i]<<endl;

                                                   nrprim++;

                                       }

              

               }

               if(nrprim==0)

               cout<<"      inexistente"<<endl;

   cout<<endl;

}

 

void sumaprime()

{

   S=0;

        prim=1;

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

               {

                           prim=1;

                           for(j=2; j<=v[i]/2; j++)

                                       if(v[i]%j==0) prim=0;

                           if(prim==1)

                                       S=S+v[i];

               }

   cout<<"Suma elementelor prime din vector este:"<<S<<endl;

}

 

void nrprime()

{

   nrprim=0;

   prim=1;

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

               {

                           prim=1;

                           for(j=2; j<=v[i]/2; j++)

                                       if(v[i]%j==0) prim=0;

                           if(prim==1)

                                       nrprim++;

               }

   cout<<"Numarul de numere prime este:"<<nrprim<<endl;

}

 

 

void scpsmi()

{

   copiere();

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

               {

                           min=b[i];

                           poz=i;

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

                                       if(b[j]<min)

                                                   {

                                                               poz=j;

                                                               min=b[j];

                                                   }

                           if(poz!=i)

                                       {

                                                   aux=b[i];

                                                   b[i]=b[poz];

                                                   b[poz]=aux;

                                       }

               }

   cout<<"Iata vectorul sortat crescator prin selectarea minimului:"<<endl;

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

               cout<<"v["<<i<<"]="<<b[i]<<endl;

}

 

void sdpsma()

{

   copiere();

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

               {

                           min=b[i];

                           poz=i;

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

                                       if(b[j]>min)

                                                   {

                                                               poz=j;

                                                               min=b[j];

                                                   }

                           if(poz!=i)

                                       {

                                                   aux=b[i];

                                                   b[i]=b[poz];

                                                   b[poz]=aux;

                                       }

               }

   cout<<"Iata vectorul sortat descrescator prin selectarea maximului:"<<endl;

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

               cout<<"v["<<i<<"]="<<b[i]<<endl;

}

 

void intersch_cresc()

{

   copiere();

   do{

               sort=1;

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

                           if(b[i]>b[i+1])

                                       {

                                                   aux=b[i];

                                                   b[i]=b[i+1];

                                                   b[i+1]=aux;

                                                   sort=0;

                                       }

     }

   while(sort==0);

   cout<<"Iata vectorul sortat crescator prin interschimbare:"<<endl;

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

               cout<<"v["<<i<<"]="<<b[i]<<endl;

}

 

 

void intersch_descresc()

{

   copiere();

   do{

               sort=1;

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

                           if(b[i]<b[i+1])

                                       {

                                                   aux=b[i];

                                                   b[i]=b[i+1];

                                                   b[i+1]=aux;

                                                   sort=0;

                                       }

     }

   while(sort==0);

   cout<<"Iata vectorul sortat descrescator prin interschimbare:"<<endl;

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

               cout<<"v["<<i<<"]="<<b[i]<<endl;

}

 

void sortare()

{

  

}

 

 

 

void main()

{

   do{

               clrscr();

               cout<<"   Iata meniul:"<<endl;

                cout<<"      0. Iesire"<<endl;

               cout<<"      1. Citire vector"<<endl;

               cout<<"      2. Afisare vector"<<endl;

               cout<<"      3. Afisare numere pare de pe pozitii impare"<<endl;

               cout<<"      4. Suma elementelor prime din vector"<<endl;

               cout<<"      5. Numarul de elemnte prime"<<endl;

               cout<<"      6. Afiseaza numerele prime din vector"<<endl;

               cout<<"      7. Sortare"<<endl;

                cout<<"   Introduceti optiunea"<<endl;

 

          //   cin>>op;

      switch(op)

               {

                           case 1: citire();

                                       break;

 

                           case 2: afisareA();

                                       break;

 

                           case 3: afispardepeimpar();

                                       break;

 

                           case 4: sumaprime();

                                       break;

 

                           case 5: nrprime();

                                       break;

 

                           case 6: afisareprime();

                                       break;

 

                           case 7: do{

                                                               clrscr();

                                                   f=1;

                                                   cout<<"   Alegeti tipul de sortare dorit:"<<endl;

                                                   cout<<"       1. Sortare crescatoare prin selectarea minimului"<<endl;

                                                   cout<<"       2. Sortare descrescatoare prin selectarea minimului"<<endl;

                                                   cout<<"       3. Sortare crescatoare prin interschimbare minimului"<<endl;

                                                   cout<<"       4. Sortare descrescatoare prin interschimbare minimului"<<endl;

                                                   cout<<"       5. Intoarcere in meniul principal"<<endl;

 

 

            switch(tip)

                        {

                                    case 1: scpsmi();

                                                break;

 

                                    case 2: sdpsma();

                                                break;

 

                                    case 3: intersch_cresc();

                                                break;

 

                                    case 4: intersch_descresc();

                                                break;

 

                                    case 5:           f=0;

                                                break;

                        }

            cin>>tip;

 

           

      }

   while(f!=0);

                                       break;

 

               }

      cin>>op;

      

      }

   while((op>0)&&(op<8));

 

   cout<<"Ati ales sa parasiti programul...";

 

}