Advertisement
Guest User

Untitled

a guest
Nov 20th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.75 KB | None | 0 0
  1. //Вариант-4.
  2. Дана целочисленная матрица {Aij}i=1...n;j=1..n , n<=100. Если в матрице есть еще один элемент, равный ее минимальному элементу, и не менее 2-х элементов, абсолютные величины которых - простые числа, упорядочить строки матрицы по невозрастанию произведений элементов. Использовать процедуры и функции!
  3.  
  4. bool absprime(int &x)
  5. {
  6.     if (x < 0)
  7.         x = -x;
  8.     if ((x == 1)||(x==0))
  9.         return false;
  10.     for (int i = 2; i < x; i++)
  11.         if (x % i == 0)
  12.             return false;
  13.     return true;
  14. }
  15.  
  16. void swap(int &x, int &y)
  17. {
  18.     int tmp = x;
  19.     x = y;
  20.     y = tmp;
  21. }
  22.  
  23. #include <iostream>
  24. using namespace std;
  25. int main ()
  26. {
  27.     int n=3;
  28.     cin >> n;
  29.     int m=3;
  30.     cin >> m;
  31.     int a[100][100];
  32.     int havemin = 0;
  33.     int primecnt = 0;
  34.    
  35.     for (int i = 0; i < n; i++)
  36.         for (int j = 0; j < m; j++)
  37.             cin >> a[i][j];
  38.  
  39.     int minimal = a[0][0];
  40.  
  41.     for (int i = 0; i < n; i++)
  42.         for (int j = 0; j < m; j++)
  43.             if (minimal > (a[i][j]))
  44.                  minimal = a[i][j];
  45.    
  46.     for (int i = 0; i < n; i++)
  47.     {
  48.         for (int j = 0; j < m; j++)
  49.         {
  50.             if (a[i][j] == minimal)
  51.                 havemin++;
  52.             if (absprime(a[i][j]))
  53.                 primecnt++;
  54.         }
  55.     }
  56.     if ((havemin>1) && (primecnt>1))
  57.     for (int k = 0; k < n-1; k++)
  58.     {
  59.         for (int i = 0; i < n - 1; i++)
  60.         {
  61.             int prod1 = 1;
  62.             int prod2 = 1;
  63.             for (int j = 0; j < m; j++)
  64.             {
  65.                 prod1 = prod1 * a[i][j];
  66.                 prod2 = prod2 * a[i + 1][j];
  67.                 if (prod1 < prod2)
  68.                     swap(a[i][j], a[i + 1][j]);
  69.             }
  70.         }
  71.     }
  72.  
  73.     for (int i = 0; i < n; i++)
  74.         for (int j = 0; j < m; j++)
  75.             cout <<a[i][j]<<endl;
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement