Advertisement
Guest User

Untitled

a guest
May 24th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int** test(int *tab, int n);
  5.  
  6. int main() {
  7.     int n2 = 6;
  8.  
  9.     int *tab = new int[n2]{1, 2, 3, 4, 5, 6};
  10.  
  11.     int **testP = test(tab, n2);
  12.  
  13.     for(int i = 0; i < 2; ++i){
  14.         for(int j = 1; j <= testP[i][0]; ++j){
  15.             cout << testP[i][j] << " ";
  16.         }
  17.         cout << endl;
  18.     }
  19.  
  20. }
  21.  
  22. int** test(int *tab, int n){
  23.     int dzielniki_index = 1,index_tabd = 2;
  24.     int parzyste_index = 1,index_tabp = 2;
  25.  
  26.     int *dzielniki = new int[index_tabd];
  27.     int *parzyste = new int[index_tabp];
  28.  
  29.     for(int i = 0; i < n; ++i){
  30.         if(n % tab[i] == 0){
  31.             if(dzielniki_index == index_tabd){
  32.                 index_tabd *= 2;
  33.                 int *tmp = new int[index_tabd];
  34.                 copy(dzielniki, dzielniki + index_tabd/2, tmp);
  35.                 delete[] dzielniki;
  36.                 dzielniki = tmp;
  37.                 dzielniki[dzielniki_index++] = tab[i];
  38.             }else{
  39.                 dzielniki[dzielniki_index++] = tab[i];
  40.             }
  41.         }
  42.         if(tab[i] % 2 == 0){
  43.             if(parzyste_index == index_tabp){
  44.                 index_tabp *= 2;
  45.                 int *tmp = new int[index_tabp];
  46.                 copy(parzyste, parzyste + index_tabp/2, tmp);
  47.                 delete[] parzyste;
  48.                 parzyste = tmp;
  49.                 parzyste[parzyste_index++] = tab[i];
  50.             }else{
  51.                 parzyste[parzyste_index++] = tab[i];
  52.             }
  53.         }
  54.     }
  55.  
  56.     dzielniki[0] = dzielniki_index - 1;
  57.     parzyste[0] = parzyste_index - 1;
  58.  
  59.     int **ret = new int*[2];
  60.     ret[0] = dzielniki;
  61.     ret[1] = parzyste;
  62.  
  63.     return ret;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement