Advertisement
MeehoweCK

Untitled

Jul 16th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. unsigned czy_pierwsza(unsigned liczba)
  7. {
  8.     if(liczba == 0 || liczba == 1)
  9.         return 0;               // 0 oznacza, że nie jest to liczba pierwsza, ale jednocześnie nie posiada dzielników
  10.  
  11.     unsigned i = 2;
  12.     while(i < pow(liczba + 1, 0.5))
  13.     {
  14.         if(liczba % i == 0)
  15.             return i;           // i oznacza dzielnik, przez który liczba nie jest liczbą pierwszą
  16.         ++i;
  17.     }
  18.     return 1;                   // 1 oznacza, że liczba jest pierwsza
  19. }
  20.  
  21. unsigned najmniejsza(unsigned liczba)
  22. {
  23.     while(true)
  24.     {
  25.         ++liczba;
  26.         if(czy_pierwsza(liczba) == 1)
  27.             return liczba;
  28.     }
  29. }
  30.  
  31. int main()
  32. {
  33.     cout << "Podaj liczbe naturalna: ";
  34.     unsigned liczba;
  35.     cin >> liczba;
  36.  
  37.     unsigned wynik = czy_pierwsza(liczba);
  38.  
  39.     if(wynik == 0)
  40.         cout << liczba << " nie jest liczba pierwsza. Namniejsza liczba pierwsza wieksza od " << liczba << " to 2." << endl;
  41.     else if(wynik == 1)
  42.         cout << liczba << " jest liczba pierwsza." << endl;
  43.     else
  44.         cout << liczba << " nie jest liczba pierwsza, poniewaz dzieli sie przez " << wynik << ". Najmniejsza liczba pierwsza wieksza od "
  45.              << liczba << " to " << najmniejsza(liczba) << "." << endl;
  46.  
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement