Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3.  
  4. using namespace std;
  5. int ile;
  6.  
  7. void quicksort(int *tablica, int lewy, int prawy)
  8. {
  9.     int v=tablica[(lewy+prawy)/2];
  10.     int i,j,x;
  11.     i=lewy;
  12.     j=prawy;
  13.     do
  14.     {
  15.         while(tablica[i]<v) i++;
  16.         while(tablica[j]>v) j--;
  17.         if(i<=j)
  18.         {
  19.             x=tablica[i];
  20.             tablica[i]=tablica[j];
  21.             tablica[j]=x;
  22.             i++;
  23.             j--;
  24.         }
  25.     }
  26.     while(i<=j);
  27.     if(j>lewy) quicksort(tablica,lewy, j);
  28.     if(i<prawy) quicksort(tablica, i, prawy);
  29. }
  30. bool czy_pierwsza(int n)
  31. {
  32.     if(n<2)
  33.         return false; //gdy liczba jest mniejsza niż 2 to nie jest pierwszą
  34.  
  35.     for(int i=2;i*i<=n;i++)
  36.         if(n%i==0)
  37.             return false; //gdy znajdziemy dzielnik, to dana liczba nie jest pierwsza
  38.     return true;
  39. }
  40.  
  41. int main()
  42. {
  43.     cout << "Ile losowych liczb w tablicy: ";
  44.     cin >> ile;
  45.  
  46.     //dynamiczna alokacka tablicy
  47.     int *tablica;
  48.     tablica = new int [ile];
  49.  
  50.  
  51.     //inicjowanie generatora
  52.     srand(time(NULL));
  53.     cout << "Przed posortowaniem: " << endl;
  54.     //wczytywanie losowych liczb do tablicy
  55.     for(int i=0; i<ile; i++) {
  56.         tablica[i] = rand() % 10 + 1;
  57.         cout << tablica[i] << " ";
  58.     }
  59.  
  60.  
  61.  
  62.     quicksort(tablica, 0, ile-1);
  63.  
  64.  
  65.     cout << endl << "Po posortowaniu: " << endl;
  66.     for(int i=0; i<ile; i++)
  67.     {
  68.         cout << tablica[i] << " ";
  69.     }
  70.  
  71.     //liczby pierwsze
  72.     cout << endl << "Liczby pierwsze: " << endl;
  73.     for(int i=0; i<ile; i++) {
  74.         if (czy_pierwsza(tablica[i]) == 1) {
  75.             int liczba_pierwsza = tablica[i];
  76.             tablica[i] = liczba_pierwsza;
  77.             cout << tablica[i] << " ";
  78.         }
  79.     }
  80.  
  81.     delete [] tablica;
  82.  
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement