Advertisement
Guest User

Untitled

a guest
Dec 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.57 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. //#####################################################################
  5. typedef struct element
  6. {
  7.     unsigned long wartosc;
  8.     struct element *nastepny;
  9. } elListy;
  10.  
  11. void pokaz(elListy *lista);
  12. void dodaj(elListy *lista, unsigned long liczba);
  13. void dodaj(elListy **ostatni, unsigned long liczba);
  14. bool czyPierwsza(elListy *lista, unsigned long liczba);
  15. //#####################################################################
  16.  
  17. //*********************************************************************
  18. int main()
  19. {
  20.     //elListy *pierwsza = new elListy;
  21.     elListy *pierwsza = 0;
  22.     unsigned long liczba = 2;
  23.     char znak;
  24.  
  25.     //pierwsza->wartosc = liczba;
  26.     //pierwsza->nastepny = 0;
  27.     dodaj(&pierwsza, liczba);
  28.     elListy *koniec = pierwsza;
  29.  
  30.     cout << "Program szuka kolejne liczby pierwsze\n";
  31.     do{
  32.         cout << "\n[N]astepna\t[W]yswietl wszystkie\t[K]oniec\n";
  33.         cin >> znak;
  34.         switch (znak)
  35.         {
  36.         case 'n':
  37.             while (++liczba)
  38.             {
  39.                 if (czyPierwsza(pierwsza, liczba))
  40.                 {
  41.                     //dodaj(pierwsza, liczba);
  42.                     dodaj(&koniec, liczba);
  43.                     cout << "Kolejna liczba pierwsza to " << liczba << "\n";
  44.                     break;
  45.                 }
  46.             }
  47.             break;
  48.         case 'w':
  49.             pokaz(pierwsza);
  50.             break;
  51.         }
  52.     } while (znak != 'k');
  53.  
  54.  
  55.     system("pause");
  56.     return 0;
  57. }
  58.  
  59.  
  60. //*********************************************************************
  61. void pokaz(elListy *lista)
  62. {
  63.     int ktory = 1;
  64.     while (lista != 0)
  65.     {
  66.         cout << ktory++ << "\t" << lista->wartosc << "\n";
  67.         lista = lista->nastepny;
  68.     }
  69. }
  70.  
  71.  
  72. //*********************************************************************
  73. void dodaj(elListy *lista, unsigned long liczba)
  74. {
  75.     while (lista->nastepny != 0)
  76.         lista = lista->nastepny;
  77.     lista->nastepny = new elListy;
  78.     lista->nastepny->nastepny = 0;
  79.     lista->nastepny->wartosc = liczba;
  80. }
  81.  
  82. //*********************************************************************
  83. void dodaj(elListy **ostatni, unsigned long liczba)
  84. {
  85.     if (*ostatni == 0)
  86.     {
  87.         *ostatni = new elListy;
  88.         (*ostatni)->nastepny = 0;
  89.         (*ostatni)->wartosc = liczba;
  90.     }
  91.     else
  92.     {
  93.         (*ostatni)->nastepny = new elListy;
  94.         *ostatni = (*ostatni)->nastepny;
  95.         (*ostatni)->nastepny = 0;
  96.         (*ostatni)->wartosc = liczba;
  97.     }
  98. }
  99.  
  100.  
  101. //*********************************************************************
  102. bool czyPierwsza(elListy *lista, unsigned long liczba)
  103. {
  104.     while (lista != 0 && lista->wartosc*lista->wartosc <= liczba)
  105.     {
  106.         if (liczba % lista->wartosc == 0)
  107.             return false;
  108.         lista = lista->nastepny;
  109.     }
  110.     return true;
  111. }
  112.  
  113.  
  114. //*********************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement