Advertisement
MeehoweCK

Untitled

May 7th, 2021
799
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. unsigned long long czy_pierwsza(unsigned long long a)
  6. {
  7.     if(a == 0 || a == 1)
  8.         return 0;               // liczba nie jest liczbą pierwszą, ale nie posiada dzielników
  9.     for(unsigned long long i = 2; i * i <= a; ++i)
  10.         if(a % i == 0)
  11.             return i;           // zwracamy dzielnik - oznacza to, że sprawdzana liczba nie jest liczbą pierwszą
  12.     return 1;                   // 1 oznacza, że sprawdzana liczba jest liczbą pierwszą
  13. }
  14.  
  15. unsigned long long nastepna_pierwsza(unsigned long long liczba)
  16. {
  17.     do
  18.     {
  19.         ++liczba;
  20.         if(czy_pierwsza(liczba) == 1)
  21.             return liczba;
  22.     } while(true);
  23. }
  24.  
  25. int main()
  26. {
  27.     unsigned long long liczba;
  28.     cout << "Podaj liczbe naturalna: ";
  29.     cin >> liczba;
  30.  
  31.     unsigned long long wynik = czy_pierwsza(liczba);
  32.  
  33.     switch(wynik)
  34.     {
  35.     case 0:
  36.         cout << liczba << " nie jest liczba pierwsza.\nNajmniejsza liczba pierwsza wieksza od " << liczba << " to 2.\n";
  37.         break;
  38.     case 1:
  39.         cout << liczba << " jest liczba pierwsza.\n";
  40.         break;
  41.     default:        // w każdym innym przypadku
  42.         cout << liczba << " nie jest liczba pierwsza, poniewaz dzieli sie przez " << wynik << ".\nNajmniejsza liczba pierwsza wieksza od " << liczba << " to " << nastepna_pierwsza(liczba) << ".\n";
  43.     }
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement