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

problema #510
Se dă un vector cu n elemente, numere naturale. Afișați în ordine crescătoare valorile prime din acest vector.Programul citește de la tastatură numărul n, iar apoi n numere naturale, reprezentând elementele vectorului.Programul va afișa pe ecran valorile prime din vector, în ordine crescătoare, separate prin exact un spațiu.

1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000

exemplu :
Intrare

7
13 1 10 15 3 7 11

Ieșire

3 7 11 13

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <algorithm>

using namespace std;

int vprime[1001];

int prim(int m)

{

   int p=1, k;

   if (m<2) p=0;

   else if (m==2) p=1;

        else

        {

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

            else

            {

                for (k=3; k*k<=m && p; k+=2)

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

            }

        }

   return p;

}

int main()

{

   int  n, i, p=0, num;

     cin >> n;

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

   {

       cin >> num;

       if (prim(num)) { ++p; vprime[p]=num;}

   }

   sort(vprime+1, vprime+p+1);

   for (i=1; i<=p; ++i) cout << vprime[i] << " ";

   return 0;

}

Explicație:

Alte întrebări interesante