Cum se rezolvă in C++? Se da o matrice de dimensiune nxm. Sa se construiasca un vector cu toate elementele prime din matrice. Sa se sorteze apoi elementele din vector.
Răspunsuri la întrebare
Răspuns:
Explicație:
#include <iostream>
using namespace std;
int isPrim(int x){
if(x == 0 || x == 1)
return 0;
int i;
for(i = 2; i < x/2; i++)
if(x%i == 0)
return 0;
return 1;
}
//^ Sper ca ai voie subprograme.
int main(){
int n, m, M[10][10];
cin >> n >> m;
int i, j;
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
cin >> M[i][j];
//Matricea a fost citita (in caz ca nu e destul de evident
int v[100], index = 0; //n * m dimensiune maxima
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
if(isPrim(M[i][j] == 1){
v[index] = M[i][j];
index++;
}
index--; //daca au fost 3 elemente bagate in vector, index e 4, testeaza //daca nu crezi
//elementele prime sunt in matrice
int aux;
for(i = 0; i < n; i++)
for(j = i + 1; j < m; j++)
if(v[i] > v[j]){
aux = v[i];
v[i] = v[j];
v[j] = aux;
}
// sau pur si simplu swap(v[i], v[j]);
return 0;
}