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
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;
}
#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
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă