👤

Se cere să se scrie o funcție care primește ca parametru un vector de n numere întregi și pune în vectorul original pe primele poziții toate numerele prime pe care le-a găsit în vector. Valorile de pe celelalte poziții nu contează. Funcția va returna numărul de numere prime găsite. Pentru testarea dacă un număr este prim, se va folosi o funcție care primește ca parametru acel număr și va returna 0 sau 1.
Exemplu: pentru vectorul v={8,4,7,9,3,10}, funcția transforma(v,6) va returna 2 și vectorul v va avea pe primele poziții valorile {7,3}.


Răspuns :

#include <iostream>

using namespace std;

int prim(int m)

{

   int p=1;

   if (m<2) p=0;

   else

   {

       if (m==2) p=1;

       if (m>2)

       {

           if (m%2==0) p=0;

           else

           {

               for (int j=3; j*j<=m; j+=2)

                   if (m%j==0) { p=0; break;}

           }

       }

   }

   return p;

}

int transforma(int v[], int n)

{

   int k=-1, prime=0;

   for (int i=0; i<n; ++i)

   {

       if (prim(v[i]))

       {

           ++k; v[k]=v[i]; ++prime;

       }

   }

   return prime;

}

int main()

{

   int n, i, v[100];

   cin >> n;

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

       cin >> v[i];

   cout << transforma(v, n) << "\n";

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

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

}


Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile prezentate v-au fost utile. Dacă aveți întrebări suplimentare sau nevoie de ajutor, vă rugăm să ne contactați cu încredere. Așteptăm cu drag să reveniți și nu uitați să ne salvați în lista dumneavoastră de favorite!


En Studentsy: Alte intrebari