Informatică, întrebare adresată de dobre50, 8 ani în urmă

Se da un vector cu n elemente, numere naturale. Afisati in ordine crescatoare valorile prime din acest vector.

Răspunsuri la întrebare

Răspuns de Sergetec
0

Salut!

Ai rezolvarea in C++ mai jos

#include <iostream>

using namespace std;

bool prim(int n)

{

 if (n <= 1)

 {

   return false;

 }

 else if (n != 2 && n % 2 == 0)

 {

   return false;

 }

 for (int i = 3; i * i <= n; i += 2)

 {

   if (n % i == 0)

   {

     return false;

   }

 }

 return true;

}

int main()

{

 int n, a[1001];

 //Citim vectorul

 cin >> n;

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

 {

   cin >> a[i];

 }

 //Sortam crescator vectorul

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

 {

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

   {

     if (a[i] > a[j])

     {

       swap(a[i], a[j]);

     }

   }

 }

 //Afisam doar elementele prime

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

 {

   if (prim(a[i]))

   {

     cout << a[i] << " ";

   }

 }

 return 0;

}

Răspuns de adrianbuf18
0

#include <iostream>

using namespace std;

int main()

{

   unsigned int n;

   cout<<"n=";

   cin>>n;

   unsigned int v[n], prim[n];

   int contor_prime=0;

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

   {

       cin>>v[i];

   }

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

   {

       if (v[i]==2)

       {

           prim[contor_prime]=v[i];

           contor_prime++;

           i++;

       }

       bool este_prim=true;

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

       {

           if(v[i]%divizor==0) este_prim=false;

       }

       if (este_prim)

       {

           prim[contor_prime]=v[i];

           contor_prime++;

       }

   }

   for (int i=0; i<contor_prime-1; i++)

   {

       for (int j=i+1; j<contor_prime; j++)

           if (prim[i]>prim[j])

           swap(prim[i], prim[j]);

   }

   cout<<"numerele prime in ordine crescatoare:"<<endl;

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

       cout<<prim[i]<<endl;

   return 0;

}

Alte întrebări interesante