Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Вариант-4.
- Дана целочисленная матрица {Aij}i=1...n;j=1..n , n<=100. Если в матрице есть еще один элемент, равный ее минимальному элементу, и не менее 2-х элементов, абсолютные величины которых - простые числа, упорядочить строки матрицы по невозрастанию произведений элементов. Использовать процедуры и функции!
- bool absprime(int &x)
- {
- if (x < 0)
- x = -x;
- if ((x == 1)||(x==0))
- return false;
- for (int i = 2; i < x; i++)
- if (x % i == 0)
- return false;
- return true;
- }
- void swap(int &x, int &y)
- {
- int tmp = x;
- x = y;
- y = tmp;
- }
- #include <iostream>
- using namespace std;
- int main ()
- {
- int n=3;
- cin >> n;
- int m=3;
- cin >> m;
- int a[100][100];
- int havemin = 0;
- int primecnt = 0;
- for (int i = 0; i < n; i++)
- for (int j = 0; j < m; j++)
- cin >> a[i][j];
- int minimal = a[0][0];
- for (int i = 0; i < n; i++)
- for (int j = 0; j < m; j++)
- if (minimal > (a[i][j]))
- minimal = a[i][j];
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < m; j++)
- {
- if (a[i][j] == minimal)
- havemin++;
- if (absprime(a[i][j]))
- primecnt++;
- }
- }
- if ((havemin>1) && (primecnt>1))
- for (int k = 0; k < n-1; k++)
- {
- for (int i = 0; i < n - 1; i++)
- {
- int prod1 = 1;
- int prod2 = 1;
- for (int j = 0; j < m; j++)
- {
- prod1 = prod1 * a[i][j];
- prod2 = prod2 * a[i + 1][j];
- if (prod1 < prod2)
- swap(a[i][j], a[i + 1][j]);
- }
- }
- }
- for (int i = 0; i < n; i++)
- for (int j = 0; j < m; j++)
- cout <<a[i][j]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement