Se citeste un vector A cu n (n<=1000) elemente numere naturale. Ordonati crescator elementele prime si plasati-le la începutul vectorului si apoi descrescator pe cele neprime, în a doua parte a vectorului. Afisati vectorul ordonat ca în cerinta.
Exemplu: n=7, A={33, 13, 77, 19, 5, 34, 100} => 5 13 19 100 77 34 33
Răspunsuri la întrebare
Răspuns de
3
#include <bits/stdc++.h>
using namespace std;
int n, v[1005], v1[1005], v2[1005], k1, k2;
bool descr(int a,int b)
{
return a>b;
}
bool prime(int n)
{
for(int i = 2; i * i <= n; i ++)
if (n % i == 0) return false;
return true;
}
int main()
{
int i;
cin >> n;
for(i=1;i<=n;i++)
{
cin >> v[i];
if(prime(v[i])) v1[++ k1] = v[i];
else v2[++ k2] = v[i];
}
sort(v1+1,v1+k1+1);
sort(v2+1,v2+k2+1,descr);
for(i = 1; i <= k1; i ++) v[i] = v1[i];
for(i = 1; i <= k2; i ++) v[i + k1] = v2[i];
for(i = 1; i <= n; i ++)
cout << v[i] << " ";
return 0;
}
using namespace std;
int n, v[1005], v1[1005], v2[1005], k1, k2;
bool descr(int a,int b)
{
return a>b;
}
bool prime(int n)
{
for(int i = 2; i * i <= n; i ++)
if (n % i == 0) return false;
return true;
}
int main()
{
int i;
cin >> n;
for(i=1;i<=n;i++)
{
cin >> v[i];
if(prime(v[i])) v1[++ k1] = v[i];
else v2[++ k2] = v[i];
}
sort(v1+1,v1+k1+1);
sort(v2+1,v2+k2+1,descr);
for(i = 1; i <= k1; i ++) v[i] = v1[i];
for(i = 1; i <= k2; i ++) v[i + k1] = v2[i];
for(i = 1; i <= n; i ++)
cout << v[i] << " ";
return 0;
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Germana,
8 ani în urmă
Istorie,
8 ani în urmă
Matematică,
9 ani în urmă
Studii sociale,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă