Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- using namespace std;
- bool primary_number(unsigned int number)
- {
- for (unsigned int i = 2; i * i <= number; i++)
- {
- if (number % i == 0)
- return false;
- }
- return true;
- }
- void MersennePrimaryNumber(unsigned int n)
- {
- int p, amount;
- unsigned int MersennePrimaryNumber;
- bool end = false;
- amount = 0;
- p = 2;
- while (!end)
- {
- if (primary_number(p))
- {
- MersennePrimaryNumber = pow(2, p) - 1;
- if (primary_number(MersennePrimaryNumber))
- {
- if (MersennePrimaryNumber > n)
- {
- end = true;
- }
- else
- {
- cout << MersennePrimaryNumber << ", ";
- amount++;
- }
- }
- }
- p++;
- }
- cout << endl << "Количество простых чисел Мерсенна: " << amount;
- }
- void main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- unsigned int n;
- cout << "Введите число n: ";
- while (!(cin >> n) || (cin.peek() != '\n') || (n <= 0))
- {
- cin.clear();
- cin.sync();
- cout << "Некорректный ввод числа. Повторите ввод числа: ";
- }
- MersennePrimaryNumber(n);
- cin.sync();
- cin.get();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement