Advertisement
MeehoweCK

Untitled

Nov 30th, 2018
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. /*
  9. A16. Napisać funkcję
  10. int r(int* t, int n)
  11. która zwraca liczbę różnych liczb pierwszych występujących w tablicy t o rozmiarze
  12. n.*/
  13.  
  14. int r(int* t, int n)
  15. {
  16.     int temp[n] = {0};
  17.     bool flaga;
  18.     int licznik = 0;        // zlicza RÓŻNE liczby pierwsze
  19.  
  20.     for(int i = 0; i < n; ++i)
  21.     {
  22.         flaga = true;
  23.         // sprawdzanie czy liczba jest liczbą pierwszą:
  24.         for(int j = 2; j < pow(n,0.5); ++j)
  25.             if(t[i] % j == 0)
  26.             {
  27.                 flaga = false;
  28.                 break;
  29.             }
  30.         if(flaga)   // mamy liczbę pierwszą
  31.         {
  32.             // sprawdzamy czy dana liczba już wystąpiła w tablicy temp
  33.             flaga = false;      // domyślnie zakładamy, że liczba t[i] nie wystąpiła w temp
  34.             for(int j = 0; j < licznik; ++j)
  35.                 if(t[i] == temp[j])
  36.                 {
  37.                     flaga = true;   // liczba już wcześniej wystąpiła
  38.                     break;
  39.                 }
  40.             if(!flaga)  // jeżeli do tej pory taka liczba nie wystąpiła
  41.             {
  42.                 temp[licznik] = t[i];   // dopisujemy ją do tablicy temp
  43.                 ++licznik;
  44.             }
  45.         }
  46.     }
  47.     return licznik;
  48. }
  49.  
  50. int main()
  51. {
  52.     srand(static_cast<unsigned>(time(nullptr)));
  53.     int tablica[30];
  54.     for(int i = 0; i < 30; ++i)
  55.     {
  56.         tablica[i] = rand();
  57.         cout << tablica[i] << " ";
  58.     }
  59.     cout << endl;
  60.     cout << r(tablica, 30);
  61.  
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement