Se da un vector cu n elemente, numere naturale. Afisati in ordine crescatoare valorile prime din acest vector.
Răspunsuri la întrebare
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;
}
#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;
}