👤

Sa se rearanjeze elementele unui tablou unidimensional de numere intregi astfel incat numerele prime sa fie situate la inceput crescator, iar numerele care nu sunt prime sa fie grupate la sfarsit descrescator.
(c++, clasa a 9-a va rogg)


Răspuns :

#include <iostream>
using namespace std;

int main()
{
int v[100],n,i,aux,d,k=0,prim;
cin>>n;
for(i=0;i<n;i++)
cin>>v[i];
for(i=0;i<n;i++)
{
prim=1;
for(d=2;d<=v[i]/2;d++)
if(v[i]%d==0)
prim=0;
if(prim==1)
{
aux=v[k];
v[k]=v[i];
v[i]=aux;
k++;
}
}
for(i=0;i<k;i++)
if(v[i+1]<v[i])
{
aux=v[i+1];
v[i+1]=v[i];
v[i]=aux;
}
for(i=k;i<n;i++)
if(v[i+1]>v[i])
{
aux=v[i+1];
v[i+1]=v[i];
v[i]=aux;
}
for(i=0;i<n;i++)
cout<<v[i];
}