Informatică, întrebare adresată de hellmanboy, 9 ani în urmă

Se dă un vector cu n elemente, numere naturale. Afișați în ordine crescătoare valorile prime din vector.

Răspunsuri la întrebare

Răspuns de Ouroboros
2
#include <iostream>
#include <algorithm>
#define MAX 10001

//eu am luat un vector cu 10001 elemente, dar poti sa iei si mai multe , si mai putine, in functie de cerinte

using namespace std;

int n,x,y,a[MAX],k,i;
int main()
{
    cin>>n;

    //citim elementele vectorului

    for( i=1 ; i<=n ; ++i )
        cin>>a[i];

    //acum sortam

    sort( a+1 , a+n+1 );

    //vedem daca numarul e prim, prin algoritmul de mai jos

    for( i=1 ; i<=n ; ++i )
    {
        x=a[i];
        if( x<=1 )
            k=x;
        else
        {
            k=2;
            for( y=2; y*y<=x; y++ )
            {
                if( x%y==0 )
                {
                    if( y*y!=x )
                        k+=2;
                    else
                        k++;
                }
            }
        }
        if(k==2) // conform algoritmului, daca numarul de divizori ( k ) e 2, atunci am gasit numar prim
            cout<<a[i]<<" ";
    }
    return 0;
}


Alte întrebări interesante