Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- unsigned long long czy_pierwsza(unsigned long long liczba)
- {
- if(liczba < 2)
- return 0; // 0 oznacza, że liczba nie jest liczbą pierwszą, gdyż jest mniejsza od 2
- for(unsigned long long i = 2; i * i <= liczba; ++i)
- if(liczba % i == 0)
- return i; // dowolny dzielnik pokazuje dlaczego dana liczba nie jest liczbą pierwszą
- return 1; // 1 oznacza, że liczba jest liczbą pierwszą
- }
- unsigned long long nastepna_pierwsza(unsigned long long liczba)
- {
- do
- {
- ++liczba;
- if(czy_pierwsza(liczba) == 1)
- return liczba;
- } while(true);
- }
- int main()
- {
- cout << "Podaj liczbe naturalna: ";
- unsigned long long n;
- cin >> n;
- unsigned long long wynik = czy_pierwsza(n);
- switch(wynik)
- {
- case 0:
- cout << n << " nie jest liczba pierwsza. Najmniejsza liczba pierwsza wieksza od " << n << " to 2.\n";
- break;
- case 1:
- cout << n << " jest liczba pierwsza.\n";
- break;
- default:
- cout << n << " nie jest liczba pierwsza, poniewaz dzieli sie przez " << wynik;
- cout << ". Najmniejsza liczba pierwsza, wieksza od " << n << " to " << nastepna_pierwsza(n) << ".\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement